Unzulässige Zeigeraddition
-
Hallo!
Auch wenn ich jetzt gleich wieder gesteinigt werde, stelle ich die Frage trotzdem mal, ich habe hier:
String Datum_Zeit_Schein = "Schein " + DateToStr(Date()) + " " + TimeToStr(Time()); ShowMessage(Datum_Zeit_Schein); CopyFile(String(Pfad + "\\schein.prn").c_str(), "c:\\wettscheine\\" + Datum_Zeit_Schein.c_str(),true);Leider bekomm ich die Meldung unzulässige Zeigeraddition, ich habe keine Ahnung wie ich das Lösen soll, ich muss Datum und Zeit zwinged in den Dateinamen schreiben.
Die Datei sollte am Ende so aussehen:
Schein 25.03.2008 20:00.prn
Hat jemand eine Idee?
Viele Grüße
Maik
-
Vergleiche mal das erste und das zweite Argument in deinem CopyFile-Aufruf.
-
Hallo Jansen,
ich habe schon alles versucht und verglichen, selbst wenn ich vor den zweiten Aufruf noch ne Klammer und ein String setze....
Keine Ahnung, ich glaub ich bin wirklich zu doof für sowas

-
Hallo
Der Builder erlaubt C-String + AnsiString und AnsiString + C-String, aber nicht C-String + String-Literal
CopyFile(String(Pfad + "\\schein.prn").c_str(), AnsiString("c:\\wettscheine\\") + Datum_Zeit_Schein.c_str(),true);bis bald
akari
-
CopyFile(String(Pfad + "\\schein.prn").c_str(), String("c:\\wettscheine\\" + Datum_Zeit_Schein).c_str(),true);Wobei auf das explizite String verzichtet werden kann; die AnsiStrings 'Pfad' und 'Datum_Zeit_Schein' sorgen implizit dafür, dass für die char-Arrays temporäre AnsiString-Instanzen zum Zwecke der StringAddition erzeugt werden.
Edit: Äh ja, was akari sagte.

Nur das richtige Positionieren der Klammern ist entscheidend.
-
Ich habe das jetzt abgeändert:
Datum_Zeit = DateToStr(Date()) + " " + TimeToStr(Time()); CopyFile(String(Pfad + "\\schein.prn").c_str(), AnsiString("c:\\wettscheine\\") + Datum_Zeit.c_str(),true);Jetzt kommt der Fehler:
[C++ Fehler] u_start.cpp(26): E2034 Konvertierung von 'AnsiString' nach 'const char *' nicht möglich [C++ Fehler] u_start.cpp(26): E2342 Keine Übereinstimmung des Typs beim Parameter 'lpNewFileName' ('const char *' erwartet, 'AnsiString' erhalten)Desweiteren würde ja bei dieser Ausführung die Endung *.prn am Ende der Datei fehlen?
Ich gebs auf, ich bin zu doof dafür...

-
Wenn da eine Endung stehen soll musst du sie halt auch noch "addieren".
In solchen Fällen ist es meist übersichtlicher, die Argumente vor der Übergabe zusanmenzubauen.String Ursprung = Pfad + "\\schein.prn"; String Ziel = "c:\\wettscheine\\" + Datum_Zeit_Schein + ".prn"; CopyFile(Ursprung.c_str(), Ziel.c_str(),true);
-
Hallo Jansen,
danke für deine Antworten!
Jetzt kommt zwar keine Fehlermeldung mehr, aber er kopiert auch nichts, obwohl die Quelldatei da ist und der Zielordner auch stimmt...
Viele Grüße,
Maik
-
Na dann solltest du dich mal mit dem Rückgabewert von CopyFile und vermutlich auch mit GetLastError vertraut machen.
-
Hallo Jansen,
das versteh ich nicht, ich stecks jetzt

Trotzdem danke....
Gruß
Maik