![]() |
string -> char -> integer
Moi Leute !
hab mal wieder n'Problem : wie kann ich den z.b. string '1001010001010010' in ein array vom typ smallint reinkriegen so dass am Ende der array so aussieht : intarray[0] := 1; intarray[1] := 0; intarray[2] := 0; intarray[3] := 1; . . . intarray[15] := 0; hoffe jeder hats verstanden! |
Moin Braingrenade,
einfach in einer for Schleife durch den String gehen (1 to length(StringVariable)), und dann mit StrToInt in das korrespondiernde Element des intarray eintragen. |
danke fürr die antwort , aber irgedwas hab ich da falsch gemacht ,
jetzt mach ichs halt mit if schleifen , das geht auch ! |
Moin Braingrenade,
if Schleife :shock: :?: Wie geht das denn? |
Moin !
ganz einfach:
Delphi-Quellcode:
for i := 0 to lenth(inputstring) do
begin if inputstring[i] = '1' then intarray[i] := 1 else intarray[i] := 0; end; |
Das ist aber trotzdem noch eine For Schleife, weil das begin nach dem do steht.
|
Moin Braingrenade,
ich hatte schon Schlimmeres befürchtet ;-) Wieso klappt
Delphi-Quellcode:
bei Dir nicht?
for i := 0 to lenth(inputstring) do
begin intarray[i] := StrToInt(inputstring[i]); end; Stimmt der inhalt nicht? Übrigens: So dürfte es auch nicht gehen, da die Indizes eines Strings bei 1 beginnen. Es sollte also wohl besser so aussehen:
Delphi-Quellcode:
for i := 0 to lenth(inputstring)-1 do
begin intarray[i] := StrToInt(inputstring[i+1]); end; |
Moin !
Da gabs bei mir immer nen Convert-Error aber is ja jetzt eh egal weil die andere Methode klappt ja auch. das mit den indizes ist bei mir anders, ich mach dass eigentlich immer mit 'ner repeat-schleife :
Delphi-Quellcode:
geht auch !
i:=0;
repeat ... i := i+1; until i := high(irgendwas)+1; |
Moin Braingrenade,
wie jetzt die Schleife aussieht, in der man die Elemente eines Arrays anspricht ist zweitrangig. Wichtig ist nur, dass die Indizes, die angesprochen werden richtig sind, und bei einem Hugestring beginnen die nun einmal bei 1 und nicht bei 0. Der Fehler wird wahrscheinlich darin liegen, dass Du einen Shortstring verwendest (z.B. deklariert mit s : string[16]), bei dem s[0] dann das Längenbyte enthält, so dass ein Zugriff auf [0] überhaupt möglich ist. Da die Länge keine ASCII Code ist, der sich mittels StrToInt umwandeln lässt, erhältst Du einen Convert Error. |
Moin !
Das mit den indizes passt schon , dass funtzt bei mir alles jetzt ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz