suchen von \\
-
Hallo,
wenn man net view in einer dosshell eingibt, dann werden einem die Rechner im Netz angezeigt. Nun ich schicke das alles in eine Datei die dann so aussieht:
\\pc1
\\pc2
\\pc3
usw.ich möchte nur den PC-Namen, also pc1 bis 3 extrahieren und als string abspeichern. So weit bin ich gekommen:
string buffer, pc_name, beschreibung;
ifstream infile("netview_tmp");
ofstream outfile;
outfile.open("netview.txt");
while(!infile.eof()){
getline(infile,buffer);
if(buffer.find("\")!=string::npos){outfile << buffer << endl; infile >> pc_name >> beschreibung; cout << pc_name << endl;}
}
outfile.close();
infile.close();netview_tmp ist ein Tempfile wo das jetzt mal drinsteht. Ich öffne eine neue Datei netview.txt um nur die Zeilen mit \\ hinein zu schreiben, doch irgendwie schafft er nicht alle. Also wenn zb 80 pc's drin sind in der Tempdatei, so ließt es nur 50 raus...wieso? Gibt da beim finden von zwei \\ einen Fehler?
Kann das auch so in ein string gleich eingelesen werden ohne die zwei \\
Also die Zeilen mit \\ finden und den PC-Namen unmittelbar hinterm \\ in einer string abspeichern?
Danke
-
\ hat in C++ Programmen eine besondere Bedeutung, selbst wenn es von " " eingeschlossen ist. Um tatsächlich ein \ Zeichen in einer Zeichenkette zu haben, musst du \\ tippen.
-
sorry war hier ein Fehler...ich hatte \\ der Rest passt
-
rasidrasid schrieb:
sorry war hier ein Fehler...ich hatte \\ der Rest passt
Du hast den Text abgetippt? Benutz mal Copy-Paste und (ganz wichtig!) die cpp-Tags, dann guckt sich das auch jemand an.
-
den Text habe ich nicht abgetippt

Beim Rumtesten war vielleicht eine falsche Variante im Umlauf. Meinst Du jetzt ganz wirklich, dass sich das keiner ansehen würde wegen einem \ und keiner irgendwelche Vorstellungen hat

-
Nicht wegen dem \, sondern wegen der CPP-Tags
-
sorry aber was sind cpp-Tags
-
rasidrasid schrieb:
sorry aber was sind cpp-Tags
Vor deinen Quelltext schreibst du
[cpp]und hinter deinen Quelltext schreibst du [/cpp]. Alternativ benutzt du den Button C/C++ links unter den Smileys.
-
string buffer, pc_name, beschreibung; ifstream infile("netview_tmp"); ofstream outfile; outfile.open("netview.txt"); while(!infile.eof()){ getline(infile,buffer); if(buffer.find("\\")!=string::npos){outfile << buffer << endl; infile >> pc_name >> beschreibung; cout << pc_name << endl;} } outfile.close(); infile.close();danke
-
Ich würde ja vermuten, dass
infile >> pc_name >> beschreibung;dir weitere Rechnernamen ausliest, wodurch diese dann übersprungen werden.
-
Du meinst aufgrund der beschreibung ließt er an der Stelle ein wo keine Beschreibung vorhanden ist und nimmt dafür einen andern PC-Namen. Müsste ich ausprobieren

Danke