Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Delphi / Kylix / Turbo Pascal » String Parsen

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
24.12.2004, 00:22 Uhr
~Gast
Gast


Hallo, ich versuche gerade einen String, der mehrere Wörter enthält, die jeweils durch einen Doppelpunkt von einander getrennt sind (alles steht aber in einem String), zu Parsen. Das funktioniert soweit auch, nur muss ich jetzt noch jedes geparste Wort einer Variable zuordnen und genau an diesem Punkt habe ich Probleme. Hier mein Code:
var
i: Integer;
s: String;
text:String;
begin
s := Edit1.Text;
i := length(s);
while i > 0 do
begin
if (s[i] in [';']) then
Delete(s, i, 1);
dec(i);
end;

ShowMessage(s);
ComboBox1.Items.Add(s);
end;

wäre dankbar, wenn mir da jemand weiterhelfen könnte
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.12.2004, 19:55 Uhr
KaraHead



Hi, hab jetzt Delphi nicht mehr ganz so gut drauf also hab ich es mal so geproggt, wie ich es in Java machen würde.Gucks dir mal an. Hoffe es bringt dich weiter.


C++:
public static void main(String[] args) {
        String src="Ich;Bin;Ein;String;";  //der zu parsende String
        int count=0, j=0;
        char token=';';    //bei welchem Zeichen der String geschnitten werden soll
        for(int i=0; i<src.length(); i++)    //zählt wieviele EndStrings aus dem Quellstring werden
            if(src.charAt(i)==token)
                count++;
            
        String dest[] = new String[count];    //deklariert die benötigte Anzahl an EndStrings
        for(int i=0; i<dest.length; i++)    //Initialisiert sie, damit sie nicht auf null zeigen
            dest[i]="";
        
        for(int i=0; i<src.length(); i++){
            if(src.charAt(i)==token)    //wenn ; erreicht ist dann soll der nächste String gefüllt werden
                j++;
            else
                dest[j]+=src.charAt(i);    //dest wird Zeichenweise von src gefüllt
        };
        
        for(int i=0; i<dest.length; i++)    //gibt alle Strings aus
            System.out.println(dest[i]);
    }



Gruß KaraHead
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.04.2005, 13:40 Uhr
~Möhre
Gast


Habs eigentlich nicht so mit Delphi.Komme aus der C++ Ecke.
Beim Builder gibt es eine Klasse TStringList.
Zur genauen Delphi-Syntax hab ich das hier gefunden.

C++:
var
  cars : TStringList;            // Define our string list variable
  i    : Integer;
begin
  // Define a string list object, and point our variable at it
  cars := TStringList.Create;

  // Now add some cars to our list - using the DelimitedText property
  // with overriden control variables
  cars.Delimiter := ' ';        // Each list item will be blank separated
  cars.QuoteChar := '|';        // And each item will be quoted with |'s
  cars.DelimitedText := '|Honda Jazz| |Ford Mondeo| |Jaguar "E-type"|';

  // Now display these cars
  for i := 0 to cars.Count-1 do
    ShowMessage(cars[i]);       // cars[i] equates to cars.Strings[i]
end;

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.04.2005, 13:42 Uhr
~Möhre
Gast


Schock.

Hab jetzt mal aufs Datum geschaut.
Ist wohl doch schon nen bischen her.
Naja vielleicht hilfts trotzdem.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Delphi / Kylix / Turbo Pascal ]  


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: