VBS Anweisungsende erwartet

Hallo zusammen,
Programmiere zum ersten mal was in VBS und jetzt stecke ich bei einer Fehlermeldung fest:

Anweisungsende erwartet.

Code:

Const TITLE = "test"

Sub Main()
 Dim foo
 Dim flugnr as String
 Dim person as String

 foo = delete\_epreis ("AYTMUC4H","E")
End Sub

Sub delete\_epreis(flugnr, person)


 GlinkApi.SendKeys(flugnr & "^mE^m")
 GlinkApi.SendKeys(person & "^m/^m")
 GlinkApi.SendKeys("J^m^m^m^m")

 Dim startPt
 Dim endPt
 Dim s

 set startPt = GlinkApi.getCursor
 startPt.x = 1
 set endPt = GlinkApi.getCursor
 endPt.x = endPt.x - 1 

' pick text from start of line to cursor pos (-1)
 S = GlinkApi.getString (startPt, endPt)

 Call Msgbox("Current line of text is: " & S, vbInformation, TITLE)

End Sub

kann mir wer sagen was der fehler bedeutet und wie ich ihn beheben kann?

Gruß
Phillip

Hallo,

Programmiere zum ersten mal was in VBS und jetzt stecke ich
bei einer Fehlermeldung fest:

Anweisungsende erwartet.

Code:

Const TITLE = "test"

Sub Main()
 Dim foo

So wird in VBS eine Variable deklariert.

Dim flugnr as String

Das versteht VBS nicht. ‚As String‘ ist VB, nicht VBS.

Dim flugnr

Sollte funktionieren. :smile:

Gruß, Rainer

Hallo Rainer,

Const TITLE = "test"

Sub Main()
 Dim foo
 Dim flugnr
 Dim person

 foo = delete\_epreis("AYTMUC4H","E")
End Sub

Sub delete\_epreis(flugnr, person)


 GlinkApi.SendKeys(flugnr & "^mE^m")
 GlinkApi.SendKeys(person & "^m/^m")
 GlinkApi.SendKeys("J^m^m^m^m")

 Dim startPt
 Dim endPt
 Dim s

 set startPt = GlinkApi.getCursor
 startPt.x = 1
 set endPt = GlinkApi.getCursor
 endPt.x = endPt.x - 1 

' pick text from start of line to cursor pos (-1)
 S = GlinkApi.getString (startPt, endPt)

 Call Msgbox("Current line of text is: " & S, vbInformation, TITLE)

End Sub

jetzt bekomm ich die Fehlermeldung:

Error Code: 13
Description: Typen unverträglich: 'delete\_epreis'
(LINE: 8, Column: 1)

Gruß
Phillip

Hallo Phillip,

Const TITLE = „test“

Sub Main()
Dim foo
Dim flugnr
Dim person

foo = delete_epreis(„AYTMUC4H“,„E“)
End Sub

Sub delete_epreis(flugnr, person)

GlinkApi.SendKeys(flugnr & „^mE^m“)
GlinkApi.SendKeys(person & „^m/^m“)
GlinkApi.SendKeys(„J^m^m^m^m“)

Dim startPt
Dim endPt
Dim s

set startPt = GlinkApi.getCursor
startPt.x = 1
set endPt = GlinkApi.getCursor
endPt.x = endPt.x - 1

’ pick text from start of line to cursor pos (-1)
S = GlinkApi.getString (startPt, endPt)

Call Msgbox("Current line of text is: " & S, vbInformation,
TITLE)

End Sub

jetzt bekomm ich die Fehlermeldung:

Error Code: 13
Description: Typen unverträglich: ‚delete_epreis‘
(LINE: 8, Column: 1)

Du rufst mit:

foo = delete_epreis(„AYTMUC4H“,„E“)

eine Funktion auf, (warum eigentlich, Du gibst doch gar nichts zurück?) und schreibst den Namen einer Prozedur.

delete_epreis(„AYTMUC4H“,„E“)

sollte das Problem beheben. Oder Du machst aus Sub Function und übergibst an delete_epreis in der Funktion einen Wert.

Gruß, Rainer

Hallo Rainer,
danke für die Antwort,
jetzt bekomme ich den Typenunverträglich fehler bei sendKeys().
was bedeutet dieser Fehler?

Kennst du ein gutes Onlinetutorial zu VBS?

Gruß
Phillip

Hallo Phillip,

erst auch von mir mal ne Frage, was ist eigentlich ‚GlinkApi.‘? Ich habe Deinen Code in VB geschrieben, da habe ich einen Debugger, der erleichtert die Fehlersuche. :smile: ‚GlinkApi.‘ versteht mein VB aber nicht.

danke für die Antwort,
jetzt bekomme ich den Typenunverträglich fehler bei
sendKeys().
was bedeutet dieser Fehler?

Eine Variable enthält einen Wert, der so nicht verarbeitet werden kann. Meist eine Zahl, wo ein String erwartet wird oder umgekehrt. Wenn Du statt einem Datum einen String übergibst oder eine Integer statt einem Bool bekommst Du aber diese Meldung auch.

Die Stelle, an der Du den Fehler jetzt hast, kann ich nicht nachvollziehen, weil ich mit dem ‚GlinkApi.‘ nichts anzufangen weiß.

Kennst du ein gutes Onlinetutorial zu VBS?

Tutorial? Nein, weiß ich nicht. Ich lese immer in Script56.chm (von Microsoft, liegt da zum kostenlosen download) die Beispiele und stricke die für meine Zwecke um. Außer hier im Brett habe ich aber mit VBS noch nichts gemacht, ich kann nur auf meine VB-Kenntnisse zurückgreifen, oft hilft das schon.

Gruß, Rainer

Hallo,

Glink ist eine Terminalemulation mit intigrierter VBS API,

sendKeys
void sendKeys(String text)Sends a string to the emulator starting at the current cursor location. The sendKeys method sends a string of keys to the virtual screen. This method acts as though keystrokes were being typed from the keyboard. 

soll eigentlich einen String bekommen und bekommt es ja auch. trotzdem bekomme ich den fehler.

Gruß
Phillip

Hallo,

Glink ist eine Terminalemulation mit intigrierter VBS API,

ahhh, OK. Meine Terminalemulation (Terms97801) hat so etwas nicht. :frowning:

sendKeys
void sendKeys(String text)Sends a string to the emulator
starting at the current cursor location. The sendKeys method
sends a string of keys to the virtual screen. This method acts
as though keystrokes were being typed from the keyboard.

Hmmm. Dann lass doch ‚GlinkApi.‘ einfach mal weg. Sendkeys sendet den String an das aktive Fenster, das ist ja dann Deine Terminalemulation. Bist Du mit der Syntax sicher?

soll eigentlich einen String bekommen und bekommt es ja auch.
trotzdem bekomme ich den fehler.

VBS kann mit den übergebenen Daten nichts anfangen. In dem Hilfetext obden steht auch nichts davon, daß Du vor GlinkApi.Sendkeys schreiben sollst, da steht nur SendKeys(String).

Gruß, Rainer