• Willkommen im neuen Alpinforum!

    Das Alpinforum ist erfolgreich auf die neue Forensoftware XenForo umgezogen. Benutzerkonten und Foreninhalte wurden übernommen, sodass ihr euch wie gewohnt anmelden könnt.

    Schaut euch gerne um und probiert die neuen Funktionen aus. Solltet ihr Fehler oder Unstimmigkeiten entdecken, meldet sie bitte im entsprechenden Thema.

    Alle Informationen zur Migration und zum neuen Forum findet ihr hier:

    Zur ausführlichen Ankündigung

    Viel Spaß im neuen Alpinforum!

    Euer Alpinforum-Team

Brauche C-Programmierhilfe

Seilbahnfreak_23

Großer Müggelberg (115m)
Registriert
29. Jan. 2008
Beiträge
472
Reaktionspunkte
0
da die Suche des Boards leider nichts gebracht hat zum Thema AnsiString, frage ich alle die sich in Programmierumgebung Borland Builder 6 auskennen.

ich habe ein Problem, und zwar will ich einen C-String (char c_string[]="test") in einen AnsiString (AnsiString x) umwandeln! Ich weiß zwar wie man AnsiStrings in C-Strings umwandelt (AnsiString.c_str()) aber leider nicht die "Umkehrfunktion" dazu. Wäre toll wenn mir jemand weiterhelfen könnte.

Vielen Dank im Voraus Mfg
Seilbahnfreak_23
 
Wieso muss man das umwandeln?
Kann man nicht von vornherein den String entsprechend auswählen?

Vielleicht hilft dir ja diese Website mehr als das Alpinforum:
http://www.cplusplus.com/
 
Ram-Brand schrieb:
Wieso muss man das umwandeln?
Kann man nicht von vornherein den String entsprechend auswählen?
Also ich will den c_string zuerst aus einer datei lesen, und dann habe ich eine Funktion, die von Borland Builder AnsiString als Parameter erwartet. Und darum muss ich das umwandeln.
Entsprechender Quellcode kommt bei nächsten Post, habe diesmal leider nicht soviel Zeit.

Ram-Brand schrieb:
Vielleicht hilft dir ja diese Website mehr als das Alpinforum:
http://www.cplusplus.com/
Danke werde ich mir mal ansehen!
 
hier wie zuvor angekündigt mein C-Quellcode:
Code:
int main()
{    FILE *fp;
     AnsiString ansi;
     char c_string[10];
     const char pfad[]="config.txt";

     //kontrolle ob datei gelesen werden kann
     if((fp=fopen(pfad,"rt"))==NULL)
     {     ShowMessage("kann nicht geöffnet werden");
           return;
     }
     else
     {   fscanf(fp,"%s", &c_string);
         fclose(fp);

         /*hier sollte die umwandlung von c_string in ansi erfolgen
           doch ich weiss leider die funktion nicht. bitte um hilfe
         */

         WinExec(ansi);

         /*ansi....sollte ein pfad sein, der aus der datei config.txt
           gelesen wird. Bsp: C:\\Programme\\Movie Maker\\moviemk.exe
         */
     }
return 0;
}

Danke für die Hilfe
 
Worin liegt der Unterschied zwischen einem C-String und eine AnsiString? Das würde ich zuerst mal versuchen raus zu finden.
Das da legt nahe, dass mit einem C-String ein primitiver String-Datentyp gemeint ist, während es sich bei AnsiString um ein String-Objekt handelt.
Eine Entwicklungsumgebung wie der Borland Builder hat doch bestimmt ein Hilfesystem mit Funktions- bzw. Objektreferenz?
 
k2k schrieb:
Worin liegt der Unterschied zwischen einem C-String und eine AnsiString? Das würde ich zuerst mal versuchen raus zu finden.
Das da legt nahe, dass mit einem C-String ein primitiver String-Datentyp gemeint ist, während es sich bei AnsiString um ein String-Objekt handelt.
Eine Entwicklungsumgebung wie der Borland Builder hat doch bestimmt ein Hilfesystem mit Funktions- bzw. Objektreferenz?
Vielen Dank werde ich mir mal genauer ansehen. Und ja der Builder hat ein Hilfesystem....aber leider werde (wurde) ich daraus nicht schlau. :gruebel:
 
Hallo,

folgende Webseiten (vorallem der zweite Konstruktor in der Auflistung) könnten hilfreich sein.
http://thunder.prohosting.com/~cbdn/pg_013.htm
http://bcbjournal.org/articles/vol1/9708/An_AnsiString_class_reference.htm?PHPSESSID=e1c4f29f4399298bd5224632715ac02d
Desweiteren kannst du einem AnsiString "Objekt" Zeichenketten mit = hinzufügen und mit + anhängen.

Das ganze könnte dann in etwa so aussehen (ohne Gewähr auf Funktionstüchtigkeit):

int main()
{ FILE *fp;
AnsiString ansi;
char c_string[10];
const char pfad[]="config.txt";

//kontrolle ob datei gelesen werden kann
if((fp=fopen(pfad,"rt"))==NULL)
{ ShowMessage("kann nicht geöffnet werden");
return;
}
else
{ fscanf(fp,"%s", &c_string);
fclose(fp);

/*hier sollte die umwandlung von c_string in ansi erfolgen
doch ich weiss leider die funktion nicht. bitte um hilfe
*/
AnsiString myAnsi(c_string);


WinExec(myAnsi);


/*ansi....sollte ein pfad sein, der aus der datei config.txt
gelesen wird. Bsp: C:\\Programme\\Movie Maker\\moviemk.exe
*/
}
return 0;
}

Hoffe dir weitergeholfen zu haben,

mfg Andi
 
War es das oder hast noch was ändern müssen? Würd mich jetz interessieren...

mfg Andi
 
Ich habe mir eure Links zu den "Hilfeseiten" angeschaut....und gelesen.
Dann bin ich draufgekommen das ich eigentlich nicht einen AnsiString brauche für WinExec(Argument); sondern einen "normalen" C-String. Also brauch(t)e ich keine Funktion die mir einen C-String in einen AnsiString umwandelt. :wall: Bin ich blöd. Aber ist halt passiert in der Hitze des Gefechts. :lol:
 
Zurück
Oben