Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

AnsiString nach const char ???





Frage

Hi Leute, folgender Abschnitt sucht nach Dateien und öffnet sie. Die Dateien folgen dem Schema 1.LEK, 2.LEK, 3.LEK, ... Nur willer nicht "in=fopen(IntToStr(count)+".LEK","rt");" zulassen: "Konvertierung von AnsiString nach const char* nicht möglich" ist die Fehlermeldung. Weiss einer ne Möglichkeit die Datei zu öffnen, ohne FileOpen zu benutzen? int count=0; while (count<30) { ++count; if (FileExists(IntToStr(count)+".LEK")) { in=fopen(IntToStr(count)+".LEK","rt"); fclose(in); }

Antwort 1 von kakalake

HI!
Sieht ganz so aus, daß du mit c programmierst.
Der + Konkatenator funktioniert nicht so wie du möchtest. Hast wohl zuviel mit TP programmiert. IntToStr liefert glaube ich einen Pointer auf char zurück. Man kann nicht zwei char Pointer mit "+" verbinden (Du addierst zwei Pointer miteinader nicht deren Inhalt), so daß man einen String herauskriegt. Das geht so nicht. Du kannst mit fopen arbeiten, jedoch mußt du eine String function benutzen, um die Char Pointer zu verbinden. mußt mal unter String functions in der MS Doc gucken.
Viel Spass

Antwort 2 von Agent_X

//Warum soll das nicht gehen???

FILE * in;
int count=0;

while (count<30)
{
++count;
if (FileExists(IntToStr(count)+".LEK"))
{
in=fopen((IntToStr(count) + ".LEK").c_str(),"rt");
fclose(in);
}
}

c_str() konvertiert einen AnsiString in einen char*