String zerlegen
-
nicht hauen jansen. aber ich denke wenn ich es versuche und dann nicht weiter komme, darf ich einen thread öffen oder? ansonsten hauen
:p
habs nun ohne hilfe versucht, da die logik eigentlich da ist, aber irgendwie klappt es doch noch nicht wie es soll. ich versuche einen string in der form:
(inkl. anführungszeichen) zu zerlegen."inhalt1","inhalt2"
var1 soll inhalt1 bekommen, vat2 den inhalt2.
void __fastcall TForm1::Button1Click(TObject *Sender) { int s1count = 0; int s2count = 0; String Full = "\"http://www.c-plusplus.net/index.php\",\"Forum\""; if(Full.Pos("\"")) { for(int x = 2; x < Full.Length(); x++) { if(Full.SubString(x,1) == "\"") { s1count = x; if(Full.SubString(x,1) == "\"") { s2count = x; } } } Edit1->Text = Full.SubString(2,s1count); Edit2->Text = Full.SubString(s1count+3,s2count); } }
wo liegt mein denkfehler?
-
Hast die Aufgabe doch gelöst.
Mußt halt auch so eintragen, wie du es zählen willst. Kannst mit den Werten spielen. Geht nach Belieben mit oder ohne die Anführungszeichen.:
void __fastcall TForm1::Button1Click(TObject *Sender) { int s1count = 0; int s2count = 0; String Full = "\"http://www.c-plusplus.net/index.php\",\"Forum\""; if(Full.Pos("\"")) { for(int x = 2; x < Full.Length(); x++) { if(Full.SubString(x,1) == "\"") { s1count = x; if(Full.SubString(x,1) == "\"") { s2count = x; } } } Edit1->Text = Full.SubString(1,s1count-2); Edit2->Text = Full.SubString(s1count,s2count+1); } }
-
hmm, irgendwie krieg ich das letzte " zeichen nicht weg. komisch
Edit1->Text = Full.SubString(2,s1count-4); Edit2->Text = Full.SubString(s1count+1,s2count);
zerlegt sieht das jetzt so aus:
http://www.c-plusplus.net/index.php
Forum"
-
Zum Entfernen/Änderen mehrerer identischer Zeichen(ketten) bietet sich StringReplace (Suchfunktion benutzen! ;)) an. Damit kannst du zB. alle Anführungszeichen auf einmal entfernen.
-
Hi <Fuck>,
ähm noch kompizierter geht es nicht, oder?void __fastcall TForm1::Button1Click(TObject *Sender) { String Full = "\"http://www.c-plusplus.net/index.php\",\"Forum\""; Label1->Caption = Full; if(Full.Pos(",")) { Edit1->Text = Full.SubString(2,Full.Pos(",") - 3); Edit2->Text = Full.SubString(Full.Pos(",") + 2, Full.Length() - Full.Pos(",") - 2); } }
So!
MFG
Alexander Sulfrian
Edit:
Zitate bitte auf das Notwendigste beschränken. Danke![ Dieser Beitrag wurde am 01.06.2003 um 00:10 Uhr von Jansen editiert. ]
-
Viermal Full.Pos(",") ist deine Vorstellung von Eleganz?
-
Noch der Vollständigkeit halber, damit der 2. Teilstring stimmt:
// Wie befohlen :p ohne letztes Anführungszeichen
Edit2->Text = Full.SubString(s1count+1,Full.Length()-s2count-1);
-
Original erstellt von Jansen:
Viermal Full.Pos(",") ist deine Vorstellung von Eleganz?Hi,
nagut:void __fastcall TForm1::Button1Click(TObject *Sender) { String Full = "\"http://www.c-plusplus.net/index.php\",\"Forum\""; Label1->Caption = Full; if(int pos = Full.Pos(",")) { Edit1->Text = Full.SubString(2,pos - 3); Edit2->Text = Full.SubString(pos + 2, Full.Length() - pos - 2); } }
Besser?
MFG
Alexander Sulfrian