|
|
 | string to AnsiString, Borland C++ Fra : CJ16 | Vist : 1871 gange 50 point Dato : 15-08-04 17:41 |
|
Hej alle
Hvordan kan man konvertere string (include <string>) til AnsiString i Borland C++? Jeg har prøvet at åbne en fil, som jeg vil vise indholdet af i en Memobox, men får følgende fejl meddelelse, når jeg prøver at kompilerer programmet:
[C++ Error] Editor.cpp(31): E2034 Cannot convert 'string' to 'AnsiString'
Koden jeg har brugt er:
fstream file;
string test;
file.open("data.dat", ios::app);
file >> test;
Memo1->Text = test;
file.close();
Venlig hilsen
Claus Jørgensen
| |
|
Jeg er ikke ekspert i Borlands "AnsiString", men du kunne prøve at konverter std::string'en til en const char *, så tror jeg kompileren kan finde ud af at konvertere den til en AnisString:
Memo1->Text = test.c_str();
| |
 | Kommentar Fra : CJ16 |
Dato : 15-08-04 18:33 |
|
Det har jeg desværre forsøgt, men det virker ikke. Der kommer ingen fejl meddelelse, men der bliver ikke skrevet noget ud i min memobox. Hvis jeg bruger et array af char, så virker det, men hvis der er flere linjer i filen, så er det kun den sidste der bliver vist i memoboxen:
const int MAXLENGTH = 21;
const int MAXCHARS = 31;
char filename[MAXLENGTH] = "data.dat";
char descrip[MAXCHARS];
int ch;
ifstream file;
file.open(filename, ios::nocreate);
if (file.fail())
Label1->Caption = "Could not be opened";
//file.seekg(1L, ios::cur);
while((ch = file.peek()) != EOF) {
file >> descrip;
Memo1->Text = descrip;
}
file.close();
| |
 | Accepteret svar Fra : BertelBrander  |  Modtaget 50 point Dato : 15-08-04 20:07 |
|
Følgende ser ud til at virke:
Memo1->Lines->Clear();
std::ifstream file;
std::string s;
file.open("C:\\bkb.txt", std::ios::nocreate);
while(std::getline(file, s))
Memo1->Lines->Add(s.c_str());
Jeg har brugt getline isf >> for mine linier indeholder mellemrum
| |
 | Godkendelse af svar Fra : CJ16 |
Dato : 15-08-04 20:18 |
|
Tak for svaret BertelBrander.
| |
 | Kommentar Fra : CJ16 |
Dato : 15-08-04 20:27 |
|
Har du fået dine point? Jeg synes ikke der er blevet trukket i mine point..
| |
|
Det ved jeg ikke, jeg er ikke "superbruger" så "mine" point forsvinder ud i den blå luft.
Jeg må vist overveje at blive superbruger en dag...
| |
 | Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|