Autor Beitrag
simonster
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 21.01.05 13:47 
Hi Leute :)

Ich habe folgende Funktion:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
function fixplanzeit(planzeit: string):string;
begin
  while Pos(':', planzeit) > 0 do
    planzeit[Pos(':', planzeit)] := '-';
end;


Meine Idee: Ich kriege mit fixzeit('22:00') dann '22-00' zurück.
Wenn ich das ganze jedoch kompilieren will, meldet er mir einen Fehler bei der "while"-Zeile: Operator oder Semikolon fehlt.

Wer sieht den Fehler?

MlG,
Simonster

PS: Falls ich im falschen Unterforum sein sollte: Sorry! ;)
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 21.01.05 13:52 
Willkommen :welcome:

Wenn ich compiliere gibts keinen Fehler.
simonster Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 21.01.05 13:58 
Dankeschön :)

Bei mir leider schon und zwar hier (bei ><):

ausblenden Delphi-Quelltext
1:
planzeit[Pos(><':', planzeit)] := '-';					


PS: Ich benutze Delphi 6
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 21.01.05 14:04 
Ich habe deinen Source 1:1 kopiert.
Wenn die Pos-Funktion in der While-Bedingung fuktioniert, sollte es auch an der Problemstelle in Ordnung sein.

Arbeite mal mit einer lokalen Variablen, in der du die Position speicherst. Diese setzt du dann an beiden Stellen statt der Funktion ein.

btw: Warum benutzt du ein while? Erwartest du den ":" mehrfach? Ich hätte If genommen.

EDIT: Ansonsten gibts es noch die Funktion StringReplace
simonster Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 21.01.05 14:13 
Hab das ganze versucht, direkt in meinen Quelltext zu integrieren ohne es in eine Function auszulagern:

ausblenden Delphi-Quelltext
1:
2:
          if Pos(':', planzeit) > 0 do
            planzeit[Pos(':', planzeit)] := '-';


In meinen (Anfänger!)-Augen schaut es fast so aus, als hätte er ein Problem mit Pos an sich.

Du hast recht, mit if liesse sich das ganze auch bewerkstelligen, denn momentan ist nur ein : zu erwarten. Wollte es jedoch so handhaben, dass es sich bei Bedarf einfacher ausbauen liesse.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 21.01.05 14:17 
Hast du im Programm eventuell noch ein globale Variable planzeit definiert. Z.B.: ein 2-Dimensionales Array?
Dieses benötigt nämlich 2 Werte in den Klammern.
simonster Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 21.01.05 14:21 
Mit StringReplace funktionierts perfekt, vielen Dank für die schnelle Hilfe :)

Genau, das wirds wohl gewesen sein...habe irrtümlicherweise planzeit als globale Variable definiert.


Liebe Grüsse,
Simon