For - Schleife + Copy Befehl => Programm hängt sich auf
-
Danke für den Tip.
Habe es jetzt so geändert klappt allerdings nicht:
for( TDZ = 1; TDZ < 10; TDZ++) { copyfile ("C:/Users/%s/AppData/Roaming/Mozilla/Firefox/Profiles/%s/signons%d.txt" "%s-signons%s.txt",VN,ON,VN,TDZ,TDZ); }
Der Compilier sagt folgendes:
main.o(.text+0x208):main.c: undefined reference to `copyfile'
collect2: ld returned 1 exit statusGrüße.
Wäre sher dankbar für ein kurzes Beispiel wie es richtig geht.
-
Hans Dieter schrieb:
copyfile ("C:/Users/%s/AppData/Roaming/Mozilla/Firefox/Profiles/%s/signons%d.txt" "%s-signons%s.txt",VN,ON,VN,TDZ,TDZ);
Was soll das sein? 1. Fehlt wohl zwischen den beiden Strings ein Komma, damit das 2 Parameter werden könnten, und 2. was sollen die %s und %d da drin? Glaube kaum, dass du in der Funktion (die ich noch nie verwendet habe, siehe unten), einen String mit Formatangaben einbauen kannst....
Die einfachste Methode zum Dateien kopieren wäre wohl auch, einfach die Quelldatei im Binärmodus zu öffnen und dann byteweise in eine andere Datei zu schreiben...
-
U-Boot schrieb:
Die einfachste Methode zum Dateien kopieren wäre wohl auch, einfach die Quelldatei im Binärmodus zu öffnen und dann byteweise in eine andere Datei zu schreiben...
Nein, wenn es auf der Plattform sowieso schon so eine Funktion gibt ist es besser und einfacher diese zu benutzen. Welche Vorteile sollte man mit einer eigenen CopyFile-Routine haben?
-
Hilft mir aber trotzdem bei meinem Compilier-Fehler nicht weiter
Grüße.
-
Hans Dieter schrieb:
Obwohl ich den Fehler mit dem %s jetzt behoben habe,
stürzt mein Programm noch ab.Bist du sicher? Behoben und nicht verlagert? TDZ ist doch eine Zahl, ne?
Behaupte ich jetzt mal ganz pauschal, denn es kommt in der for-schleife vor:for( TDZ = 1; TDZ < 10; TDZ++)
Also muss da schonmal ein %d oder ein %u hin.
Hans Dieter schrieb:
Kann es daran liegen, das ich Dateien kopieren will,
die nicht existieren?Nein, daran kann es nicht liegen. Es erscheint allenfalls ein "Dateiname nicht gefunden" oder sowas in der Konsole.
Wennze trotzdem voher checken willst, ob die Datei existiert, kannst du z.B. fopen/fclose mit Lesemodus nehmen. Oder PathFileExists, oder _access oder so.Der erste Ansatz mit sprintf war schon ok, bloss der Formatstring funzt wohl noch nicht.
Gruß,
B.B.
-
Zitat:
for( TDZ = 1; TDZ < 10; TDZ++)Also muss da schonmal ein %d oder ein %u hin.
Habe das jetzt geändert, aber trotzdem
hängt sich das Programm noch auf.Selbst nach einem Sleep(10);,
fals die Schleife überlastet ist, bzw. der Befehl,
hängt es sich noch auf.Grüße.
-
Zeig doch nochmal die sprintf Zeile und den System aufruf. Was ist VN und ON?
-
HEy,
{ sprintf (CY, "Copy C:\\Users\\%s\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\%s\\signons%d.txt %s-signons%d.txt ",VN,ON,VN,TDZ,TDZ); system(CY); sleep(10); }
Ist die komplette For-Schleife.
Hier noch die Variablen.
char VN[100]; char ON[100]; char TR[300]; char CY[300]; int BS; short TDZ;
Grüße.
-
Hier ein Link zu CopyFile:
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1687038.htmlsiehe auch MSDN:
http://msdn.microsoft.com/en-us/library/aa365522(VS.85).aspx
-
Beide Links haben mir nicht weitergeholfen,
da ich weder in Cpp programmiere, noch aus der MSDN
Seite klug werde.Grüße.
-
Guckst du noch einmal Formatstring an, sind zwei Fehler drin.
-
sleep kannnste weglassen