Explode
-
ich hätte aber lieber einen array dx
-
Dann machs eben in ein Arry, wo ist der Unterschied

-
'pos' is not a member of 'System::AnsiString'
-
Ich würde mal in der Hilfe nachschauen...
Daraus ergibt sich, dass pos groß geschrieben werden muss...
-.-
-
Hallo
Ein Blick in die BCB-Hilfe zu den Methoden der Klasse AnsiString und du weißt die korrekte Schreibweise der Methode.
/Edit : Ich bin heut zu langsam
bis bald
akari
-
"Im Projekt explode.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meödung:'Zugriffsverletzung bei Adresse 004207E5.
Lesen von Adresse FFFFFFF6.' Prozeß wurde angehalten. Fortfahren mit Einzelschritt oder Start."
kommt dann als Fehlermeldunghier mien Code:
for(pos=0;pos>-1;) { pos=sstring.Pos("."); if(pos!=-1) sestring[apos] = (sstring.SubString(0,pos)); sstring.Delete(0,pos); apos++; } Edit2->Text = sestring[0]; Edit3->Text = sestring[1]; Edit4->Text = sestring[2]
-
Da ist wohl dein Array etwas zu klein geraten (nur eine Vermutung)
-
Hallo
Du hast nicht berücksichtigt, das bei AnsiString (und nur bei AnsiString) die Elemente (also die chars) nicht von 0 bis Length() -1 gezählt werden, sondern von 1 bis Length().
Und das betrifft auch die AnsiString-Methoden.bis bald
akari
-
Und was genau soll ich jetzt machen?^^ (Bin heute n bisschen dumm)
-
Du mußt als Untergrenze für deine Methodenaufrufe den richtigen Wert angeben - "sestring[apos] = (sstring.SubString(1,pos));"
-
"Im Projekt explode.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meödung:'Zugriffsverletzung bei Adresse 004207ED.
Lesen von Adresse FFFFFFF6.' Prozeß wurde angehalten. Fortfahren mit Einzelschritt oder Start."Geht nicht^^
-
Beim Delete() mußt du das vermutlich genauso machen.
(kleiner Tip: Klick mal auf "Einzelschritt" und schau dir genauer an, was das Programm macht)
-
Hab ich^^
for(pos=1;pos>-1;) { pos=sstring.Pos("."); if(pos!=-1) sestring[apos] = (sstring.SubString(1,pos)); sstring.Delete(1,pos); apos++; }Und das mit einzelschritt wieß ich net wie geht
-
Da fehlen noch Klammern beim if
if(pos!=-1) { sestring[apos] = (sstring.SubString(1,pos)); sstring.Delete(1,pos); }Wegen Debugging schau mal hier rein
http://www.junix.ch/bcb/help/debug.html
-
klappt immer noch nicht^^
-
AnsiString fangen immer bei 1 an, d.h.
if(pos > 0)ist hier notwendig
-
und beim for auch
for (pos = 1; pos > 0;)oder bei
for (pos = 1; pos > -1;)belassen?
-
Warum nimmst du da überhaupt eine for-Schleife?
Das hier sollte auch gehen. sestring muß dabei ein Array der Größe >=limit sein.apos = 0; while(((pos = sstring.Pos(".")) > 0) && (apos < limit)) { sestring[apos++] = (sstring.SubString(1,pos)); sstring.Delete(1,pos); }