AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Pos()

Ein Thema von Ramox · begonnen am 20. Jul 2007 · letzter Beitrag vom 21. Jul 2007
Antwort Antwort
Ramox

Registriert seit: 20. Jul 2007
5 Beiträge
 
#1

Problem mit Pos()

  Alt 20. Jul 2007, 19:39
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.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit Pos()

  Alt 20. Jul 2007, 19:42
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]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Ramox

Registriert seit: 20. Jul 2007
5 Beiträge
 
#3

Re: Problem mit Pos()

  Alt 20. Jul 2007, 19:45
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.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Problem mit Pos()

  Alt 20. Jul 2007, 19:48
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
  Mit Zitat antworten Zitat
Ramox

Registriert seit: 20. Jul 2007
5 Beiträge
 
#5

Re: Problem mit Pos()

  Alt 20. Jul 2007, 19:51
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
  Mit Zitat antworten Zitat
pszopp

Registriert seit: 7. Sep 2005
Ort: Alsdorf
95 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Problem mit Pos()

  Alt 20. Jul 2007, 20:03
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
www.pstipp.de | Tippseite zur Formel 1 und Fußball WM/EM - kostenlos und Just-For-Fun
  Mit Zitat antworten Zitat
Ramox

Registriert seit: 20. Jul 2007
5 Beiträge
 
#7

Re: Problem mit Pos()

  Alt 20. Jul 2007, 20:09
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;
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#8

Re: Problem mit Pos()

  Alt 21. Jul 2007, 01:29
j wird nicht erhöht. ^^
  Mit Zitat antworten Zitat
Ramox

Registriert seit: 20. Jul 2007
5 Beiträge
 
#9

Re: Problem mit Pos()

  Alt 21. Jul 2007, 10:40
Doch, in der schleife davor, is ja net nur so kurz der Code.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.
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