Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit Pos() (https://www.delphipraxis.net/96248-problem-mit-pos.html)

Ramox 20. Jul 2007 18:39


Problem mit Pos()
 
Hiho,
ich hab heut seid langem mal wieder angefangen ein wenig mit Delphi zu programmieren, aber als ich da
Delphi-Quellcode:
while Pos('#', helpstr) > 0 do
           begin
                win[j]:=strtoint(copy(helpstr,1,pos('#',helpstr)));
           end
eingegeben habe, heiß es, ein Semikolon oder ein Operator würde fehlen.

Ich habe alles versucht, aber komme net auf meinen Fehler.

Hoffe ihr könnt mir helfen.

Christian Seehase 20. Jul 2007 18:42

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:
win[j]:=strtoint(copy(helpstr,1,pos('#',helpstr)[color=red][b]-1[/b][/color]));
heissen, da sonst StrToInt vor die Wand läuft.
Das steht ohne -1 am Ende des per Copy erzeugten Strings.
[/EDIT]

Ramox 20. Jul 2007 18:45

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.

marabu 20. Jul 2007 18:48

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

Ramox 20. Jul 2007 18:51

Re: Problem mit Pos()
 
Delphi-Quellcode:
pos:Array[-1..10, 0..18] of char;
Jippi, danke hab an dem Code auch schon lange net mehr gearbeitet, also hatte ich das ga net mehr im Kopf.

Vielen Dank an alle, die sich darüber Gedanken gemacht habn und mir helfen wollten bzw. geholfen haben.

MfG Ramox

pszopp 20. Jul 2007 19:03

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:
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;
!!Dabei ist jedoch zu beachten, dass die letzte Zahl nur übernommen wird, falls sie mit # abgeschlossen wird!!

Viele Grüße,
pszopp

Ramox 20. Jul 2007 19:09

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;

Nuclear-Ping 21. Jul 2007 00:29

Re: Problem mit Pos()
 
j wird nicht erhöht. ^^

Ramox 21. Jul 2007 09:40

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