Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#21

AW: Zahlen in einem String finden

  Alt 23. Nov 2012, 10:31
Nja, bei Unicode macht der Code eventuell nicht ganz, was er soll. (aber zumindestens gibt es keine Zugriffsverletzungen)

Aber am Sichersten ist hier nicht array[0..255] aka array[Byte] , sondern array[Char] , also ein Array mit Feldern für jeden Char-Wert.
Und man kommt beim Char auch ohne Konvertierung aus, da es ja schon Chars sind.
Delphi-Quellcode:
myarray = array[Char] of Integer;

FillChar(myarray, SizeOf(myarray), 0);
for i := 1 to Length(mystring) do
  Inc(myarray[mystring[i]]);
// mit Forin sieht es auch ganz nett aus (wenn das Delphi sowas schon kann)
for C in mystring do
  Inc(myarray[C]);

for C := '0to '9do
  WriteLn(C, ' ', myarray[C]); // man kann die Typumwandlungen vom Write/Writeln auch benutzen, wenn man mag

bzw. nur das, was man braucht
Delphi-Quellcode:
myarray = array['0'..'9'] of Integer;

FillChar(myarray, SizeOf(myarray), 0);
for i := 1 to Length(mystring) do
  if mystring[i] in ['0'..'9'] then
    Inc(myarray[mystring[i]]);
for C in mystring do
  if CharInset(mystring[i], ['0'..'9']) then
    Inc(myarray[C]);

for C := '0to '9do // for C := Low(myarray) to High(myarray) do
  WriteLn(C, ' ', myarray[C]);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (23. Nov 2012 um 10:35 Uhr)
  Mit Zitat antworten Zitat