Moin,
gibt es die möglichkeit ein Programmpfad automatisch zu erkennen ?
ZBSP. Ich habe eine List.exe die auf eine list.txt zugreifft.
die List.txt ist aber in der list.exe mit einem Festen Pfad angegeben funktioniert also nur wenn diese mit der exe im Ordner c:\List\ liegt.
Nun möchte aber Person X das Programm in den Ordner Programme kopieren und zack nix geht mehr da der Pfad zur List.txt nicht mehr stimmt.
mit msgbox App.Path & „\CTDI.txt“
bekomme ich den Richtigen Pfad angezeigt.
Wenn ich aber damit arbeiten möchte:
Open App.Path & „\CTDI.txt“ For Input As #ff
geht das nicht ?
mfg joe
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
kann es sein, daß App.Path ein Laufwerk ist? Dann gibt es Probleme.
Das hier läuft immer!
Dim ff As Integer
Dim pfd As String
Dim na As String
pfd = App.Path
If Right(pfd, 1) "\" Then pfd = pfd & "\"
na = pfd & "CTDI.txt"
ff = FreeFile
Open na For Input As #ff
...
Du darfst Dich nicht darauf verlassen, daß App.Path am Ende keinen Backslash enthält, weil das nicht zuverlässig immer so ist.
komisch in der MSGbox paast es alles: aber File not found beim
auslesen… ordner lauten „D:\FF Tools\FF Menü\CTDI.txt“
a ber warum.
pfd = App.Path
If Right(pfd, 1) „“ Then pfd = pfd & „“
na = pfd & „CTDI.txt“
MsgBox na
textcheck = Text1.Text
Open na For Input As #ff
Das ist so richtig, da hast Du einen anderen Fehler.
Stimmt der Pfad?
Ist die Datei wirklich da?
Tippfehler beim Dateinamen oder der Endung?
ich habe es gerade mal gestetet und solche Pfadnamen angelegt, weil ich den Umlaut im Verdacht hatte, aber …
Option Explicit
Private Sub Command1\_Click()
Dim pfd As String
Dim na As String
Dim ff As Integer
Dim zl As String
ff = FreeFile
pfd = "C:\FF Tools\FF Menü\"
na = pfd + "Test.txt"
Open na For Input As #ff
Input #ff, zl
Close #ff
Text1.Text = zl
End Sub
(Nicht extra kompiliert … ) Das läuft!
Dein Programm geht davon aus, daß es im selben Verzeichnis liegt, wie die Textdatei. Ist das so? Liegt die .exe, die Du startest wirklich im selben Verzeichnis wie die Daten?
Option Explicit
Private Sub Command1\_Click()
Dim pfd As String
Dim na As String
Dim ff As Integer
Dim zl As String
ff = FreeFile
pfd = App.Path
If Right(pfd, 1) "\" Then pfd = pfd + "\"
na = pfd + "Test.txt"
Open na For Input As #ff
Input #ff, zl
Close #ff
Text1.Text = zl
End Sub
kompiliert, in das selbe Verzeichnis wie die Textdatei gelegt, .exe gestartet, läuft.
Ich habe noch bemerkt, daß ich
ff = FreeFile
nicht gesehen habe, das steht dann weiter oben, hast Du nicht mit kopiert, oder?
@Joe: Werden die Daten in der Text Datei, während des Proggs geaendert? Wenn ja erklärt es das du ein seperates Files brauchst. Wenn nicht, warum packst du es dann nicht als Resource ins Progg ?
@Rainer: Ich weiss jetzt nicht aus dem Stehgreif. Aber koennte es evtl. sein das das Leerzeichen im Pfad Probleme macht?
@ Joe
Mal ein kleines Demo
Option Explicit
'Prüfen ob File existiert
Public Function FileExists(sFile As String) As Boolean
On Error GoTo ErrHandler
Dim I As Long
FileExists = True
I = FileLen(sFile)
On Error GoTo 0
Exit Function
ErrHandler:
FileExists = False
On Error GoTo 0
End Function
'So koennte dann der Zugriff ausschauen
Dim sFile As String
Dim FNr As Byte
sFile = IIf(Right(App.Path, 1) = "\", App.Path & "DeineDatei.txt", App.Path & "\" & "DeineDatei.txt")
If Not (FileExists(sFile)) Then
'File not found
Else
FNr = FreeFile
Open sFile For Input As #FNr
'Deine Anweisungen
close #FNr
End If
MfG Alex
@Rainer: Ich weiss jetzt nicht aus dem Stehgreif. Aber koennte
es evtl. sein das das Leerzeichen im Pfad Probleme macht?
die Leerzeichen und den Umlaut hatte ich auch im Verdacht, deshalb habe ich die Pfade bei mir genau so angelegt … klappt. Selbst das ‚ü‘ stört nicht. Nein, an den Pfadnamen liegt es nicht.
Joa, meine Schuld …
ich könnte schwören das die MSGBOX heute Mittag den richtigen Ordner angezeigt hat … nun zeigt sie Richtigerweise in den Ordner wo das Projekt drin ist … Nach dem Compilieren in den Richtigen ORdner läuft alles …
Ich danke euch.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi Rainer,
Was macht deine Telnetanwendung ? Das läuft mit MSCOM oder ?
Ich versuche nebenbei von einem Nokia Handy AT Befehle auszuwerten.
Da geht im HyperTerminal aber wegen Treiberproblemen nicht mit MScomm
So steht es zumindest im MSD
Wenn es Interessant wird kommt der Thread
mfg joe
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
ein Pogramm auf einem Unix-Server ‚bedienen‘. Es werden Daten ‚eingegeben‘ und ich bekomme Detailinformationen zurück.
Das läuft mit MSCOM oder ?
Nein, komplett mit API, den Code dazu habe ich bei PlanetSourcecode gefunden. Den Parser für VT100 hätte ich selbst nicht hin bekommen, ich habe die dazu nötigen Informationen nicht gefunden.
Ich versuche nebenbei von einem Nokia Handy AT Befehle
auszuwerten.
Da geht im HyperTerminal aber wegen Treiberproblemen nicht mit
MScomm
So steht es zumindest im MSD
Darüber weiß ich nichts. Wenn Du aber Telnet mit VT100 verwenden kannst, kann Dir der ursprüngliche Code helfen.
Kommst Du mit einem ‚normalen‘ Telnetclient mit VT100/VT50 auf das Handy?
Mein .OCX hilft Dir da nicht, das ist komplett auf meine Bedürfnisse zugeschnitten.