ListBox Text hoch/tief Stellen etc
-
dann werd ich das mal probieren! danke sehr!!
-
ich dafür ja den String bearbeiten und hab in der Methode fürs leerzeichen löschen irgendeinen fehler, den ich nich verstehe:
AnsiString a = " "; Funk = Edit1->Text; int b = Funktion.Length(); for(int i=1;i<=b;i++) { if(Funktion[i]==a) { if(i==b){Funktion = Funktion.SetLength(i-1);b = Funktion.Length();} for(int j=i;j<=Funktion.Length();j++)Funktion[j]=Funktion[j+1]; b = Funktion.Length(); } } ListBox1->Items->Add(Funk);
erst hatte ich das:
if(Funktion[i]==" ")
, was Fehler "kann char* nich in char umwandeln" oder so lieferte!
und dann hatte ich vorher
for(int i=1;i<=Funktion.Length();i++)
, was während des programmlaufs einen fehler verursachte"variante des typs string konnte nicht in variante des typs double konvertiert werden"????
hatte das problem schonmal und konnte es mit obiger änderung beheben, aber jetzt gehts nicht...was ist das?
-
was ist das?
Das hab ich mich auch gefragt, wo doch AnsiString eine Methode "Trim" hat, die alle Leerzeichen und Steuerzeichen entfernt.
-
mmh, das ist natürlich eine äußerst nützliche methode, sollte man sich merken...
(wobei ich auch leerzeichen innerhalb entfernen möchte, was die funktion nicht tut)aber das ändert nichts daran, dass ich diese struktur für andere abfragen brauche und der fehler immer auftritt, ob ich nach " " oder nem anderen zeichen frage...
-
Dann nimm doch StringReplace.
eingabe = StringReplace(eingabe," ","",TReplaceFlags() << rfReplaceAll);
-
von welchem Datentyp ist
Funktion[i]
und was schliesst du durch
" "
ein ?
-
zu 1. AnsiString, sorry steht in der h-datei
zu 2. ein leerzeichen aber dann später auch noch andere Zeichen, die zur funktionsbearbeitung wichtig sind: =, (), ^, e, ln, sin .........
@ trimmer danke sehr funktioniert gut!!
aber die schleife wirft immer noch die exception...
-
naja in Funktion kann nie soetwas wie (), ln, sin stehn, da es sich hier um einen einzelnen Char handelt und nicht um einen AnsiString, die Variable Funktion ist ein Ansistring
deshalb kann
if(Funktion[ i]==a)
nicht funktionieren, da er hier einen Char und nicht einen String erwartet, es geht nur so
if(Funktion[ i]==' ') //fragt z.B. nach Leerzeichen
um nach ganzen Stringteilen zu suchen kann man Pos verwenden
-
@linnea ja ich weiß, so wie du es sagst hatte ich es ja, aber da kommt einmal die debugger meldung char in char* umwandeln geht nicht und mit
AnsiString a = " "; if(Funktion==a)
kam dann die meldung während des laufenden! programms, was ich schon komisch fand!
-
hoo, da fällt mir auf: ich hatte anführungszeichen in der abfrage verwendet, das ist natürlich dumm, hätten einfache sein müssen ' '!!! sorry