Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++: fOpen -> Problem mit Dateiname (https://www.delphipraxis.net/39286-c-fopen-problem-mit-dateiname.html)

Schubi 31. Jan 2005 13:21


C++: fOpen -> Problem mit Dateiname
 
Hallo zusammen!
So langsam denke ich ich bin zu blöd für C++.

Ich Will ne Datei mit fOpen auf machen, da muss ich ja so wie ich das jetz erforscht hab \ doppelt nehmen.
Also beispielsweise "c:\\test.dat".

Nun hol ich mir den Dateinamen mit nem Open-Dialog, der gibt nen String ohne doppelte \ zurück.
Also dachte ich mir ich verdopple die einfach mit folgendem Codeschnipsel:
Delphi-Quellcode:
char sString2[1024];
strcpy(sString2,ofn.lpstrFile);//Dateiname aus Opendialog in String kopieren
int len, i, addx;
addx = 0;
len = strlen(sString2);
for (i = 0; i < len; i++)
{
   if (sString2[i]==92)//92 = "\"
      {
      sString[i+addx]=92;
      addx++;
      sString[i+addx]=92;
      }
   else
   sString[i+addx] = sString2[i];
}
sString[i+addx]=0;//String abschließen
Pustekuchen, klappt net (Fehler beim Öffnen)!!!

Wenn ich allerdings den String net mit dem Open-Dialog einlese, sondern mit
Delphi-Quellcode:
strcpy(sString,"c:\\test.dat");
zuweise, geht es mit einmal. WO ist der Unterschied??????
Es kommt doch beide male der gleiche String raus, oder?
Mach ich was mit den Zeichen Falsch? Besteht ein Unterschied zwischen 2 mal 92 und "\\"???

Danke schonmal fürs durchlesen :mrgreen:

Gruß, Schubi

dizzy 31. Jan 2005 13:24

Re: C++: fOpen -> Problem mit Dateiname
 
Den Backslash ("\") brauchst du nur dann, wenn du im Quellcode einen String direkt angibst. Und zwar idR für alle Sonderzeichen. Den String deines OpenDialogs kannst du 1:1 in fOpen verwenden.

Gruss,
Fabian

Schubi 31. Jan 2005 13:30

Re: C++: fOpen -> Problem mit Dateiname
 
also, ich hab nu probiert:
Den String aus dem Dialog nehme ich mit strcpy in sString rein, dann rufe ich fOpen auf, geht NICHT!
Ändere ich allerdings den String mit
Delphi-Quellcode:
strcpy(sString,"c:\\test.dat");
Dann geht es mit einmal!

Aber warum geht es mit dem String aus dem Open-Dialog net?
Woran kann es dann liegen, wenn nicht an den doppelten "\"?

Schubi 1. Feb 2005 07:42

Re: C++: fOpen -> Problem mit Dateiname
 
Habs rausgefunden...
Einer von diesen Fehlern, die man net findet. :wall: :oops:

Danke trotzdem!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz