Excel i TXT olarak kaydederken kaydolan veride " Problemi

Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Merhabalar

Aşağıda Perl diliyle yazılmış bir script code var.
Bu kodu ben bir TXT dosyasından aşağıda olduğu gibi excele çekiyorum.

Çünkü bu kod üzerinde kırmızı renkli yerlerde username ve password girişi sağlayıp tekrar dışarıya txt olarak aktarmam lazım. fakar bu değişiklği yapıp tekrar TXT olarak aktarınca 2. kısımdaki kod gibi. her satırın başında ve sonunda tırnak işareti oluşmuş halde aktarmış oluyor. Buna sebeb ne olabilir acaba bilgilerinizi rica ederim

Dilerseniz Orjinal halini alın kodun Excelde Bir sheette A sütununa yapıştırın ve farklı kaydetten txt olarak kaydedin bir yere. sonra kapatın. gidin txt dosyasını açın o zaman tırnak işaretlerini göreceksiniz.

ORJİNAL HALİ
Kod:
use warnings;
use strict;
use Net::Telnet::Cisco;
use Net::Ping;
my $satir;
my $cmd;
my @sutun;
my @sutun2;
my @output;
my $ip;
my $hostname;
[B][COLOR="Red"]my $username="username";
my $password="password";[/COLOR][/B]
my $password3="pass";
my $password2="";
my $telnet_timeout=30;
my $timeout_cmd=60;
my $timeout=90;
my $ayrac="------------------------------------------\n\n";
my $enter="\n";
my ($session, $session2);
open (OUTFILE, ">>zpassnotok.txt");
if (open (INFILE, "SwitchListesi.txt")){
while (<INFILE>){
$satir=$_;
chop($satir) if ($satir =~ /\n/);
@sutun=split(/\s+/, $satir);
$ip = $sutun[0];
if($session = Net::Telnet::Cisco->new(
Host => $ip,
Timeout => $timeout,
Errmode => sub { my $errmsg = shift; 
warn "Error2: $errmsg $ip"}
)
){
if ($session->login($username, $password)) {
$session->enable("password");
sendCmd();
}
else { 
print OUTFILE "$ip	--> Pasword_Not OK\n"; 
}
}	
}
close (INFILE);
} else {
print "ROUTER LISTE DOSYASI ACILAMIYOR!\n";
}
close(OUTFILE);
sub sendCmd {
open (SONUC, ">>ErrDisableKomutOutput.txt");
print SONUC $ip;
print SONUC $enter;
close (SONUC);
if (open (INPUT, "ErrDisableKomut.txt")){
while (<INPUT>){
open (SONUC, ">>ErrDisableKomutOutput.txt");
$cmd=$_;
chop($cmd) if ($cmd =~ /\n/);
@output = $session->cmd(String => "$cmd", Timeout => $timeout_cmd);
print SONUC @output;
print SONUC $enter;            
}
print SONUC $ayrac;
close (SONUC);
close(INPUT);
} else {
print "INPUT DOSYASI ACILMIYOR!\n";
} 
}

TXT OLARAK DIŞARI KAYDETTİKTEN SONRAKİ HALİ
Kod:
"use warnings;"			
"use strict;"			
"use Net::Telnet::Cisco;"			
"use Net::Ping;"			
"my $satir;"			
"my $cmd;"			
"my @sutun;"			
"my @sutun2;"			
"my @output;"			
"my $ip;"			
"my $hostname;"			
[B][COLOR="Red"]"my $username=""username"";"
"my $password=""password"";"[/COLOR][/B]
"my $password3=""pass"";"			
"my $password2="""";"			
"my $telnet_timeout=30;"			
"my $timeout_cmd=60;"			
"my $timeout=90;"			
"my $ayrac=""------------------------------------------\n\n"";"			
"my $enter=""\n"";"			
"my ($session, $session2);"			
"open (OUTFILE, "">>zpassnotok.txt"");"			
"if (open (INFILE, ""SwitchListesi.txt"")){"			
while (<INFILE>){			
"$satir=$_;"			
"chop($satir) if ($satir =~ /\n/);"			
"@sutun=split(/\s+/, $satir);"			
"$ip = $sutun[0];"			
if($session = Net::Telnet::Cisco->new(			
Host => $ip,			
Timeout => $timeout,			
"Errmode => sub { my $errmsg = shift;"			
"warn ""Error2: $errmsg $ip""}"			
)			
){			
if ($session->login($username, $password)) {			
"$session->enable(""password"");"			
"sendCmd();"			
}			
else {			
"print OUTFILE ""$ip	--> Pasword_Not OK\n"";"			
}			
"}	"			
}			
"close (INFILE);"			
} else {			
"print ""ROUTER LISTE DOSYASI ACILAMIYOR!\n"";"			
}			
"close(OUTFILE);"			
sub sendCmd {			
"open (SONUC, "">>ErrDisableKomutOutput.txt"");"			
"print SONUC $ip;"			
"print SONUC $enter;"			
"close (SONUC);"			
"if (open (INPUT, ""ErrDisableKomut.txt"")){"			
while (<INPUT>){			
"open (SONUC, "">>ErrDisableKomutOutput.txt"");"			
"$cmd=$_;"			
"chop($cmd) if ($cmd =~ /\n/);"			
"@output = $session->cmd(String => ""$cmd"", Timeout => $timeout_cmd);"			
"print SONUC @output;"			
"print SONUC $enter;"			
}			
"print SONUC $ayrac;"			
"close (SONUC);"			
"close(INPUT);"			
} else {			
"print ""INPUT DOSYASI ACILMIYOR!\n"";"			
}			
}
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Dosyanızı "Biçimli Metin *.prn" olarak kaydedin.
Kaydettiğiniz dosyanızın uzantısını txt olarak değiştirin.
 
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
çok teşekkürler o şekilde kaydedince olması gereken formatta kaydediyor.

Ufak bir sorum daha olacak

bu şekilde kaydolduktan sonra bu dosyanın kapanmasını sağlamam lazım ki prn uzantısını txt olarak macro ile değiştirebileyim. manuel bir değişim sağlamayacağım.

1-2 kod denedim aşağıdaki gibi. kaydetme durumunu soruyor illaki. sorguyu yapmadan kaydetse excel kapanmış olacak. ve prn uzantısı txt olabilecek.
Kod:
Sub exit()
    Select Case Excel.Windows.Count
        Case 1
            ThisWorkbook.Save
            Application.Quit
        Case Is > 1
            ThisWorkbook.Save
            ThisWorkbook.Close
    End Select
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kod ile kayıt işlemini yapabilirsiniz.


Kod:
  ThisWorkbook.SaveAs Filename:=[COLOR="Red"]"C:\DosyaAdı.TXT"[/COLOR], FileFormat:=xlTextPrinter, CreateBackup:=False
    Select Case Excel.Windows.Count
        Case 1
            Application.Quit
        Case Is > 1
            ThisWorkbook.Close
    End Select
 
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Eklediğin kod ile yine kaydetmek istiyor musun sorgusu çıkıyor.

Bu sorgu çıkması direk kendisi bu dosya haliyle kaydetip kapatsın dosyayı.

Zira ben bu dosyayı excel arkaplanda görünmeyecek şekilde ayarladım ve userform açılıyor.

userformdan bir veri girişi yapıyorum. o userform o girişi yaptıktan sonra bu excele kaydedip kendini kaydedip kapatması lazım. arkasından başka bir excel userformu açılıyor.

haliyle kaydetme sorgusu arka planda kalıyor. ve dosya adıda bu yüzden değişmiyor.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki gibi deneyin.
Kod:
  ThisWorkbook.SaveAs Filename:="C:\DosyaAdı.TXT", FileFormat:=xlTextPrinter, CreateBackup:=False
    Application.DisplayAlerts = False
    Select Case Excel.Windows.Count
        Case 1
            Application.Quit
        Case Is > 1
            ThisWorkbook.Close
    End Select
 
Üst