LoadFromFile(const UnicodeString Dateiname);
-
Hallo
Durch den Umstieg vom C++Builder 2007 auf den Builder 2009 liefert die
Funktion "LoadFromFile(const UnicodeString Dateiname);" mit der Eingabe
eines UnicodeStrings (z.B. "C:\\Programme\\Kochbuch\\4907.JPG") nur die
Fehlermeldung:Datei "C:\\Programme\\Kochbuch\\4907.JPG" kann nicht geöffnet werden. Das
Gerät ist nicht bereit. Anmerk.: Die Datei ist natürlich vorhanden.Wenn ich aber über einen OpenDialog die Funktion füttere
(z,B."LoadFromFile(Opendialog1->FileName);"), so funktioniert der Ladevorgang
einwandfrei. Erstaunlich dabei ist, dass beim Debuggen aus dem OpenDialog1->Dateinamen der gleiche Text ("C:\\Programme\\Kochbuch\\4907.JPG") auszulesen ist, wie vorher in den UnicodeString eingegeben wurde.Unter dem Builder 2007 arbeitete die Funktion mit dem AnsiString einwandfrei,
wer weiß Rat, warum es nun nicht mehr funktioniert.Gert
-
... bei mir funktioniert das einwandfrei.
UnicodeString ucStr; UnicodeString ucStr1 = "D:\\xxx.jpg"; OpenDialog1->Filter = "JPG files (*.jpg)|*.JPG"; // Execute an open file dialog. if (OpenDialog1->Execute()) { // First, check if the file exists. if (FileExists(OpenDialog1->FileName)) { // If it exists, load the data into the memo box. ucStr = OpenDialog1->FileName; try { Image1->Picture->LoadFromFile(ucStr1); } catch (...) { } } else { // Otherwise, throw an exception. throw(Exception("File does not exist.")); } }
Ob ich ucStr o. ucStr1 nehme, es gibt immer ein positives Rrgebnis.
Beispiel ist aus der Embarcadero Hilfe übernommen.Gruß Dieter
-
Hallo Dieter,
vielen Dank für Deine Info.
Bei mir funktioniert die Dateinamen-Übergabe aus dem OpenDialog heraus auch,
aber wenn ich den Dateinamen in einen UCString eingebe, sowie Du es gemacht
hast mit dem ucstr1, so funktioniert es bei mir nicht mehr. Es ist aber für mich
sehr wichtig, aus dem Programm heraus verschiedene Files zu laden, ohne dabei
den Umweg über den OpenDialog zu machen sondern Namen und Pfad für das File
programmseitig vorzugeben.Vielleicht hast Du ja noch eine Idee, woran der Fehler bei mir liegen könnte.
Gruß Gert
-
Ändere bitte
UnicodeString ucStr1 = "D:\\xxx.jpg";
zu
UnicodeString ucStr1 = L"D:\\xxx.jpg";
funktioniert es dann?
Edit: Vielleicht solltest du auch mal etwas Programmcode zeigen.
-
... bei mir funktioniert es. Die Zuweisung an den UnicodeString ist polymorphisch.
Es wäre mal gut, den eigentlichen Code zu sehen.
Dieter
-
Versuch mal deine Dateien nicht von C:\Programme\... zu laden sondern von einem anderen Pfad.
C:\Programme ist bei Windows teilweise ein Link bzw eine Art Alias.MfG Stephan
-
Hallo zusammen!
Ich danke Euch sehr für die Eure Unterstützung!
Der Vorschlag von Burki hat leider nicht funktioniert aber die Idee von Stephan
hat mich auf die richtige Spur geführtIch habe den Code C:\\Programme\\Kochbuch..... in C:\\ Program Files\\Kochbuch...
geändert und schon hat es funktioniert.Ich hatte schon tagelang im Internet gesucht, um eine Lösung für diesen Fehler zu
finden, da mein Kochbuch-Programm ohne die Funktionen LoadFromFile und SaveFileTo
absolut untauglich wäre. Deshalb nochmals vielen Dank.Gruß Gert