Thema: Delphi Auswerten eines Strings

Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Auswerten eines Strings

  Alt 6. Nov 2009, 13:54
hallo 388dave,

auch wenn schon alles gesagt wurde:
Delphi-Quellcode:
if s<>'
      then begin
        for i:=1 to length(s) do begin
          if s[1] = '1
            then begin
              if s[i] = ';
                then begin inc(j);
            end
          else
            if s[1] = '2
              then begin
                if s[i] = ';
                  then inc(k);
              end



        end;
        if j =1 then endstr:=j;
        if k =1 then endstr:=k;
        beginstr:=0;
        s:=copy(s,beginstr,endstr-beginstr+1);
        Label2.Caption:=s;
        Socket.SendText(Text);
        Label3.Caption:=Text;
Delphi-Quellcode:
  if s[1] = '1then j:=pos(';',s);
  if s[1] = '2then k:=pos(';',s);
Hierbei wird das erste Auftreten von ";" übernommen, Bei Deiner Vorgehensweise das letzte! Wenn so gewollt, dann OK aber dann würde ich eine Dekrement bevorzugen.


Delphi-Quellcode:
   beginstr:=0;
   s:=copy(s,beginstr,endstr-beginstr+1);
das geht brutalst in die Hose, da Stringdaten erst ab dem Index 1 zur verfügung stehen. Nur die shortstrings haben an der Position 0 Daten (ihre Länge) und diese Information willst Du ja nicht haben.
Achja beinahe übersehen, wo kommt eigentlich der Wert von "endstr" her ? (Wenn k oder j mal nicht=1 sind?)

Und in Text
Delphi-Quellcode:
  Socket.SendText(Text);
  Label3.Caption:=Text;
steht hier alles mögliche (wahrscheinlich nichts), da "Text" kein Wert zugewiesen wurde.
Ausserdem ist "Text" nicht gerade glücklich, "MeinText" ist zwar auch nicht viel schöner, birgt aber eine geringere Verwechslungsgefahr (zum Glück gibt's kein TForm.Text).

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat