Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Zahlen in einem String finden (https://www.delphipraxis.net/171731-zahlen-einem-string-finden.html)

himitsu 23. Nov 2012 10:31

AW: Zahlen in einem String finden
 
Nja, bei Unicode macht der Code eventuell nicht ganz, was er soll. (aber zumindestens gibt es keine Zugriffsverletzungen)

Aber am Sichersten ist hier nicht
Delphi-Quellcode:
array[0..255]
aka
Delphi-Quellcode:
array[Byte]
, sondern
Delphi-Quellcode:
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 := '0' to '9' do
  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 := '0' to '9' do // for C := Low(myarray) to High(myarray) do
  WriteLn(C, ' ', myarray[C]);

p80286 23. Nov 2012 10:39

AW: Zahlen in einem String finden
 
Jetzt sei mal nicht so pingelig, beachte bitte, daß ich ein Array of Integer und nicht of Byte genutzt habe.
Ernsthaft, wie groß wird eigentlich dieses
Delphi-Quellcode:
array[char] of byte
? Mein alter TI konnte damit nicht mehr umgehen.

Gruß
K-H

himitsu 23. Nov 2012 11:01

AW: Zahlen in einem String finden
 
256, bzw. 131072 Bytechen (ANSI/Unicode)

Der kleine latainische Buchstabe Kra (#$0138) oder der arabische Buchstabe Zah (#$0638) ist als "Byte" eine 8 (#$0038)

nuclearping 23. Nov 2012 11:22

AW: Zahlen in einem String finden
 
Die ganze Diskussion erinnert mich wieder an: http://www.zid.tuwien.ac.at/fileadmi...22/cartoon.jpg :mrgreen:

Sir Rufo 23. Nov 2012 11:30

AW: Zahlen in einem String finden
 
Zitat:

Zitat von nuclearping (Beitrag 1192572)
Die ganze Diskussion erinnert mich wieder an: http://www.zid.tuwien.ac.at/fileadmi...22/cartoon.jpg :mrgreen:

:thumb:

evtl. kommen wir ja noch zum konkreten Teil :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz