Eingabestring zerlegen ?

madmat

Mitglied
Hallo,

wie kann ich in Delphi einen String Zeichen für Zeichen durchgehen und zerlegen ?
ich möchte aus einer infix (1+2) eine postfixnotation erzeugen (12+)
wobei das erste zeichen eingelesen wird ->stack, dann der operator->temp_stack, zeichen->stack, operator->stack usw bis zum ende.
dann werden beide stacks nacheinander ausgegeben...

in java hab ich das schonmal gemacht, jetzt wirds in delphi gewünscht - hilfe...
:rolleyes:
 
In Delphi kann man einen String imo am besten zerlegen, indem man ihn mit einer Zählschleife durchläuft.

for i:=0 to length(string) do
begin
...
end;

Wenn du nach bestimmten Zeichen trennen willst, kannst du jeden Char in einen String (der nur für diese art an Chars vorgesehen ist, zB Operatoren, Zahlen) speichern, oder wie du das auch immer machen magst dann. Und die können dann wieder nacheinander ausgegeben werden.

Hoffe, das war es jetzt, was dir so ungefähr weiterhilft. Irgendwie hab ich zumindest beim ersten lesen nicht gewusst, was du wolltest :(

Hellie
 
hmm...ja, vielen dank, das versuche ich gleich mal.
aber stimmt, kann sein dass mein posting etwas wirr ist, geschuldet der tatsache dass es im gedankenprozess um die problemlösung geschrieben wurde, da ist man sich selten schon selber sicher was man vor hat.

das ganze soll eine sog. upn (umgekehrte_polnische_notation) aus einem eingabestring erzeugen, dabei Punkt-vor Strichrechnung und Klammerung beachten.
 
wie gebe ich zahlen/charbereiche an ?
also wenn ich prüfen will ob ein string/teilstring in einer bestimmten menge enthalten ist.
gibts sowas wie

Code:
if string[i] is in (a..z)

oder ähnlich ?
 
Code:
> if string[i] is in (a..z)


Hier gibt es verschiedene Möglichkeiten.
Am besten verwendest du:
Code:
case string[i] of
  'a' .. 'z',
  'A'..'Z' : 
  begin
    // Tu was Buchstaben
  end;
  '0' .. '9' : begin
     // Tu was mit Ziffern
  end;
else
  // Tu sonst was
end;

vop
 
jawoll...danke :)
sprachenwechsel fetzt nicht....dann will man und wüsste auch wie, aber es geht nicht.... grr...:-(
 
Re: -

Und eine F1 Taste gibt es auch ;-]
wohl war, aber die suche dort...tja - wonach ?
ich hab alle kombis aus "if" "string" "in" usw. probiert, und mich DANN an dieses tolle forum gewandt - so isses doch vorgesehen,oder ? :)
 
hmm...neue frage.

gibt es eine möglichkeit die pascal methode 'writeln' auf ein memofeld anzuwenden ?
so dass das memofeld behandelt wird wie die console in pascal ?
also während des programmablaufs fortwährend neue zeilen angehängt werden können ?

kann man die frage ungefähr verstehen ? :)
 
ahh...ok...memo1.lines.add (..) hab ich gesucht glaube ich.

oder gehts auch anders?kann man writeln direkt verwenden ?
 
Zurück