![]() |
Problem mit Pos()
Hiho,
ich hab heut seid langem mal wieder angefangen ein wenig mit Delphi zu programmieren, aber als ich da
Delphi-Quellcode:
eingegeben habe, heiß es, ein Semikolon oder ein Operator würde fehlen.
while Pos('#', helpstr) > 0 do
begin win[j]:=strtoint(copy(helpstr,1,pos('#',helpstr))); end Ich habe alles versucht, aber komme net auf meinen Fehler. Hoffe ihr könnt mir helfen. |
Re: Problem mit Pos()
Moin Ramox,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Wenn ich das richtig sehe, fehlt ein ; hinter dem end. Der Rest sieht syntaktisch richtig aus. [EDIT] Ausserdem müsste es
Code:
heissen, da sonst StrToInt vor die Wand läuft.
win[j]:=strtoint(copy(helpstr,1,pos('#',helpstr)[color=red][b]-1[/b][/color]));
Das steht ohne -1 am Ende des per Copy erzeugten Strings. [/EDIT] |
Re: Problem mit Pos()
Hallo danke für die schnelle Antwort.
Aber das Problem ist nicht bei dem 'end' sondern bei hinter 'Pos(' :( ich habe es in einem anderen Projekt auch getestet mit, aber da funktioniert das alles weiß jemand woran das liegen könnte? Edit: und das mit dem -1 hab ich mir auch gedacht, aber der fehler ist ja schon vorher. |
Re: Problem mit Pos()
Hallo,
kann es sein, dass du eine Variable mit dem Namen Pos deklariert hast? Der Compiler kann dann die Funktion Pos() nicht sehen. Grüße vom marabu |
Re: Problem mit Pos()
Delphi-Quellcode:
Jippi, danke hab an dem Code auch schon lange net mehr gearbeitet, also hatte ich das ga net mehr im Kopf.
pos:Array[-1..10, 0..18] of char;
Vielen Dank an alle, die sich darüber Gedanken gemacht habn und mir helfen wollten bzw. geholfen haben. MfG Ramox |
Re: Problem mit Pos()
Hallo Ramox,
so wie es aussieht hast du dir eine Endlos-Schleife gebaut. Die Variable "helpstr" bleibt ja innerhalb der while-Schleife konstant. Wenn also die Bedingung am Start der Schleife true ist, wird sie immer true bleiben. Hier mein Vorschlag:
Delphi-Quellcode:
!!Dabei ist jedoch zu beachten, dass die letzte Zahl nur übernommen wird, falls sie mit # abgeschlossen wird!!
procedure Split1(aValue : string);
begin while Pos('#', aValue) > 0 do begin // Integer-Wert kopieren win[j] := StrToInt(Copy(aValue, 1, Pos('#', aValue) - 1)); // Integer-Wert aus der Variablen entfernen. aValue := Copy(aValue, Pos('#', aValue) + 1, MaxInt); end; end; Viele Grüße, pszopp |
Re: Problem mit Pos()
Huhu pszopp,
danke auch dafür, aber ich war noch net fertig damit, wollte nur erst einmal das erste Problem lösen. habe nun
Delphi-Quellcode:
while Pos('#', helpstr) > 0 do
begin win[j]:=strtoint(copy(helpstr,1,pos('#',helpstr)-1)); helpstr:=copy(helpstr,pos('#',helpstr)+1,length(helpstr)-pos('#',helpstr)); loos[j]:=strtoint(copy(helpstr,1,pos('#',helpstr)-1)); helpstr:=copy(helpstr,pos('#',helpstr)+1,length(helpstr)-pos('#',helpstr)); end; |
Re: Problem mit Pos()
j wird nicht erhöht. ^^
|
Re: Problem mit Pos()
Doch, in der schleife davor, is ja net nur so kurz der Code.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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