Seite 1 von 1

Variable .s dann Syntaxfehler

Verfasst: 22.09.2005 08:15
von felix
Hallo,

ich habe folgendes Problem,

ich definiere eine Variable in meinen Programm so:

Code: Alles auswählen

pfad_k1.s = "d:\html\webcam\cam1_image1.jpg"
pfad_k2.s="d:\html\webcam\cam2_image1.jpg"
pfad_k3.s="d:\html\webcam\cam3_image1.jpg"
pfad_k4.s="d:\html\webcam\cam4_image1.jpg"

pfad_archiv_k1.s="d:\apachefriends\xampp\htdocs\cam1_bilder\cam1_image1"
pfad_archiv_k2.s="d:\apachefriends\xampp\htdocs\cam2_bilder\cam2_image1"
pfad_archiv_k3.s="d:\apachefriends\xampp\htdocs\cam3_bilder\cam3_image1"
pfad_archiv_k4.s="d:\apachefriends\xampp\htdocs\cam4_bilder\cam4_image1"
Die ftp_* Variablen sind auch alle definiert.
dann will ich das ganze per ftp hochladen, umbennen - verschieben und löschen

mit

Code: Alles auswählen

result =FTP_Upload(ftp_server_ip,ftp_user,ftp_passwort,21,ftp_pfad,pfad_k1,"cam1_image1.jpg")
     If result = 1
      uhr$= FormatDate("%hh%ii%ss", Date())
      datum$ = FormatDate("%dd%mm%yyyy", Date())
      RenameFile(pfad_k1,pfad_archiv_k1+"_"+datum$+"_"+uhr$+".jpg")
      DeleteFile(pfad_k1)
      SetGadgetText(#Text_4,uhr$+": Bild Kamera 1 übertragen und verschoben")
     EndIf
und bekomme bei dem RenameFile einen SyntaxError und bei DeleteFile einen Bad Parameter Type: a String is expected fehler.

Ich habe das ganze bereits unter PB 3.93 geschrieben und auch als lauffähige exe. Nur jetzt gehts mit PB 3.94 nicht mehr.

Muss ich den Variablen ein $ Zeichen mitgeben ?

mfg

Stefan

Verfasst: 22.09.2005 08:47
von ts-soft
Woher soll der Compiler Wissen, das: "pfad_archiv_k1") ein String ist? Wurde nirgends dekariert, abgesehen davon sind Datum und Uhrzeit ja auch leer :wink:

Verfasst: 22.09.2005 09:03
von felix
Die Variablen sind bereits definiert. ZUr besseren Anschauung habe ich den Code in meiner Anfrage etwas erweitert.

Das ganze lief ja so unter PB 3.93 ohne Probleme, es gibt ja auch eine lauffähige .exe , diese Arbeit seit fast 3 Monaten ohne Probleme. Nun wollte ich das Programm weiterschreiben.

Ich habe aber in der Zwischenzeit meinen PC neu installiert und PB 3.94 drauf, und nun tritt eben dieser Fehler auf und ich weiss nicht warum.

Zwischenzeitlich habe ich hinter den Variablen ein $ stehen und nun gehts.

Verfasst: 22.09.2005 10:22
von ts-soft
Der Unterschied zwischen $ und .s ist ja nur der, das Du $ immer angeben mußt, währendessen .s nur bei der ersten Benutzung angegeben werden muß. Wenn die Deklarierung z.B. in einer If Anweisung erfolgt, die nicht eintrifft, ist die Variable auch nicht deklariert und somit ein Long.
DefType oder Protected können hier helfen Fehler zu vermeiden

Verfasst: 22.09.2005 15:10
von NicTheQuick
ts-soft hat geschrieben:Wenn die Deklarierung z.B. in einer If Anweisung erfolgt, die nicht eintrifft, ist die Variable auch nicht deklariert und somit ein Long.
Das stimmt so nicht ganz.
Du musst unterscheiden zwischen dem Kompiliervorgang und der Laufzeit. Die Variablen werden praktisch schon beim Kompilieren deklariert, egal, ob da irgendeine If-Anweisung wahr ist oder falsch.
Bespiel:

Code: Alles auswählen

If 1 = 0
  a.s = "1"
  Debug "a.s wurde deklariert"
Else
  Debug "a.s wurde nicht deklariert"
EndIf
a + "hallo"
Debug a
Aber das nur mal so nebenbei.

Verfasst: 22.09.2005 15:18
von ts-soft
@NicTheQuick
Ups, Du hast Recht :oops: