Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: Zahlen aus String parsen

  Alt 8. Mai 2012, 14:18
hi,

[EDIT]Hatte das mit dem NON-VCL überlesen... Hier einmal überarbeitet [/EDIT]


Delphi-Quellcode:
unit Unit2;

interface

type
  TStringArray = array of string;

procedure GetNums(AString: string; var AStrArray: TStringArray);

implementation

procedure GetNums(AString: string; var AStrArray: TStringArray);
var
  ndx: Integer;
  sHelp: string;
begin
  sHelp := '';
  SetLength(AStrArray, 0);
  for ndx := 1 to Length(AString) do
  begin
    if (AString[ndx] in ['0'..'9']) then
    begin
      sHelp := sHelp + AString[ndx];
    end
    else if (sHelp <> '') then
    begin
      SetLength(AStrArray, Length(AStrArray)+1);
      AStrArray[High(AStrArray)] := sHelp;
      sHelp := '';
    end;
  end;
end;

end.
Das hier ist übrigens fehlerhaft, denn, was passiert bei solch einem String "abc1"?
Erst bei i = length(string) (letzter Durchlauf) wird sHelp gesetzt, das Speichern der Zahl geschieht aber nur, wenn es sich <beim nächsten Zeichen> nicht um eine Zahl handelt (hier gibt es kein nächstes Zeichen (letzter Schleifendurchlauf))
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat