Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Ansistring

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.03.2004, 14:39 Uhr
Puschel
Dr. med. Dipl. Prof. Virus


Also ich hab folgendes Prob.

Hier erst mal mein Quelltext:

C++:
Trennzeichen=Config->ReadString(auswahl->Items->Strings[x],"Trennzeichen","");
SplitLine(Memo1->Lines[0][i],Trennzeichen, ListBox1->Items);



so und er gibt mir folgende Fehler meldung aus:


Code:
[C++ Fehler] BUEWA.cpp(84): E2034 Konvertierung von 'AnsiString' nach 'char' nicht möglich



Nun meine Frage wie kann ich AnsiStrings in einen Charakter wandeln.

Program: BCB 6

Noch ne frage. wie kann ich einen Tabulator darstellen. also im prinzip das das Program erkennt das in einem Text ein Tabulator enthalten ist. in der konsole ist es glaube ich "\t". und unter Windows-Anwendungen???
--
Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.

Dieser Post wurde am 03.03.2004 um 15:12 Uhr von Puschel editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.03.2004, 11:02 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ich weiss das nicht genau aber ich glaub ein "richtiger Ansi-String" stellt als mehthode c_str() zur verfügung.
damit solltest du es vielleicht mal probieren...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.03.2004, 13:00 Uhr
Puschel
Dr. med. Dipl. Prof. Virus


Also das hab ich schon probiert. dann kommt die Fehler meldung:

Code:
[C++ Fehler] BUEWA.cpp(84): E2034 Konvertierung von 'char*' nach 'char' nicht möglich


aber das ist glaube ich die einzigste möglichkeit



- das zweite Problem hat sich schon erledigt(das mit dem Tabulator) ist unter Ansi-C wie unter Windows das gleiche.
--
Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.

Dieser Post wurde am 04.03.2004 um 13:03 Uhr von Puschel editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.03.2004, 13:12 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


kommt die fehlermeldung in der zeile?

C++:
Trennzeichen=Config->ReadString(auswahl->Items->Strings[x],"Trennzeichen","");


ich kennne die Methode ReadString nicht...
auf jeden fall heisst die Fehlermeldung das der an der stelle ein zeichen und kein ganzen string haben will
auch kommt mir " " ein wenig komisch vor
probier mal mit einfachen hochkommata ' '
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.03.2004, 13:47 Uhr
Puschel
Dr. med. Dipl. Prof. Virus


nedas ist was anderes:

C++:
ReadString // dateien aus einem .INI-File auslesen


Das ist aber schon umgeschrieben. der Quelltext ist ein wenig anders jetzt.

Die andere Funktion lautet so:

C++:
SplitLine(Memo1->Lines[0][i],char(Trennung.c_str()), ListBox1->Items);
//hier trat außerdem auch der Fehler auf


SplitLine ist ne selbst gebastelte Funktion, aber wichtig ist eigentlich das

C++:
char(Trennung.c_str())


so kann ich einen AnsiString in einen charakter wandeln!!
--
Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.

Dieser Post wurde am 04.03.2004 um 13:49 Uhr von Puschel editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
04.03.2004, 13:52 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



C++:
char(Trennung.c_str())


also das sieht mir sehr gewagt aus. Ich weiss auch nicht genau was der cast macht aber ich vermute mal das er dafür sorgt das einfach mit der adresse des "strings" bzw. char-arrays als charakter weitergerechnet wird...
ich glaub nicht das es das ist was du machen willst, bzw das das so funktioniert wie du dir vorstellst...
SplitLIne kenn ich als funktion so nicht
wie sieht denn die deklaration von dem teil aus?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
04.03.2004, 13:59 Uhr
Puschel
Dr. med. Dipl. Prof. Virus



C++:
void SplitLine(AnsiString Zeile, Char Trennung, TStrings *Worte)
{
   int i;
   AnsiString speicher = "";
   Worte->Clear();

   for(i=1; i<=Zeile.Length(); i++)
   {
        if(Zeile[i]==Trennung )
                {
                Worte->Add(speicher);
                speicher = "";
                }
                else
                        {
                        speicher = speicher + Zeile[i];
                        }
   }
   if(speicher.Length()!= 0)
   {
      Worte->Add(speicher);
   }
   return ;
}


SplitLine ist eine von mir selbstgebastelte Funktion, das hatte ich aber auch schon gesagt.

C++:
char(Trennung.c_str())


Das erfüllt voll und ganz den Zweck. Also das Programm läuft ohne Fehler und ohne rum zu zucken

Um nochmal zu Splitline zu kommen hier wird eine Textdatei in ein Memo eingelesen, In dem Text gibt es ein Trennungszeichen, dieses wird aus einer .ini -Datei ausgelesen.Dann wird der Text zerlegt, die einzelnen Strings in eine ListBox geschrieben und von dort werden ausgesuchte Strings in ein neues Memo-Feld zusammengesetzt.
--
Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.

Dieser Post wurde am 04.03.2004 um 14:02 Uhr von Puschel editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
04.03.2004, 14:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


hm naja ist ein wenig sehr plattformabhängig implementiert aber sei es drum...
Es gibt übrigens eine funktion namens strtok die ein wenig mächtiger ist als die von dir geschriebene und dir die arbeit abgenommen hätte...
was trotzdem komisch ist, ist das du ihm ein String übergeben willst. wenn du sowieso nur ein char brauchst. Ich vermute mal das dein String aus nur einem zeichen besteht.
Wenn dem so ist kannst du ihm ja auch gleich Trennung[0] übergeben anstatt kompliziert ein chararray draus zu basteln und zu casten....
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
04.03.2004, 14:28 Uhr
Puschel
Dr. med. Dipl. Prof. Virus


naja es sind halt Artikeldateien von verschiedenen Herstellern und nicht bei jedem ist es nur ein Zeichen oder zwei(char können unter Windows sind ein oder zwei zeichen aber nicht mehr) und bei einigen Lieferanten/Herstellern sind das mehr als zwei Zeichen. Also musst ich einen String nehmen. Trotzdem danke für deine Tipps. Jeder hat halt andere Ideen, und im Prinzip kommt doch jeder an sein Ziel und meistens noch zum gleichen.
--
Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: