Autor Thema: Datei öffnen mit "Open sFile For Input As fileNum"  (Gelesen 2659 mal)

Offline froehlich2000

  • Junior Mitglied
  • **
  • Beiträge: 65
hallo zusammen,

folgendes problem.
ich öffne eine datei mit folgendem befehl
Code
Open sFile For Input As fileNum 
on error springt das programm zu einer fehlerbehandlung, das programm wartet 1sek und versucht dann die datei wieder mit
Code
Open sFile For Input As fileNum 
zu öffnen.

es erscheint eine fehlermeldung "unable to open file"

eigentlich sollte das programm aber 30 mal (30sek) versuchen die Datei zu öffnen und danach eine fehlermeldung ausspucken.

kann mit jemand sagen warum beim zweiten versuch die datei zu öffnen eine fehlermeldung kommt?

danke...

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #1 am: 12.10.05 - 11:16:50 »
mehr Code!
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline froehlich2000

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #2 am: 12.10.05 - 11:25:20 »
ok:
Fehlerbehandlung:
Code
fehlerbehandlung:
	Do
		zahl = zahl+1
		Sleep (1)
		If zahl = 30 Then
			Messagebox "Datei nicht gefunden / Verarbeitung nicht möglich", vbCritical, "BLA"
			Exit Sub
		End If
		Open sFile For Input As fileNum 
	Loop Until zahl = 30
	Resume Next



Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #3 am: 12.10.05 - 11:39:05 »
Wenn in der Fehlerbehandlung ein Fehler auftritt, dann wird dieser nicht von der Fehlerbehandlung abgefangen.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline froehlich2000

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #4 am: 12.10.05 - 11:49:33 »
es funktionier aber auch nicht, wenn ich in der fehlerbehandlung zu einem anderen label springe
und in diesem dann den Open sFile befehl mache.
vor dem label steht dann on error goto fehlerbehandlung.
beim ersten durchlauf funktionier das ja dann auch aber beim 2. nicht mehr.

die fehlerbehandlung sieht dann so aus:
Code
fehlerbehandlung:
	zahl = zahl+1
		Sleep (1)
		If zahl = 30 Then
			Messagebox "Datei nicht gefunden / Verarbeitung nicht möglich", 48, "Bla"
			Exit Sub
		End If
		Goto openfile

Offline mibo11

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #5 am: 12.10.05 - 11:57:03 »
Mal ein ganz anderer Ansatz. Es ist ja offensichtlich, dass du auf diese Datei wartest. Wahrscheinlich Datenversorgung über TXT Datei oder ähnliches. Versuch doch einfach 30 Sekunden einen Dir auszuführen und wenn Datei vorhanden ist, unterbrichst du deine Do While Schleife, die maximal 30 Sekunden läuft und öffnest die Datei dann mit deinem Open Befehl. Die Fehlerbehandlung kann in diesem Fall dann nicht den Grund haben, dass die Datei nicht vorhanden ist.

Gruß Sascha
« Letzte Änderung: 12.10.05 - 11:59:49 von mibo11 »

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #6 am: 12.10.05 - 12:44:59 »
Ich persönlich würde eine Funktion schreiben, die prüft, ob auf eine Datei zugegriffen werden kann oder nicht. Die Finktion gibt Wahr bzw. Falsch zurück.

Hier ein Beispiel aus einer VB Anwendung, evtl kannst du es ja einfach nach LS übersetzen...
(nicht selbest verfasst sondern in google geklaut)
Code
Private Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
Private Declare Function GetLastError Lib "kernel32" () As Long
Private Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long

Function IsFileAlreadyOpen(fileName As String) As Boolean
   Dim hFile As Long
   Dim lastErr As Long

   ' Initialize file handle and error variable.
   hFile = -1
   lastErr = 0

   ' Open for for read and exclusive sharing.
   hFile = lopen(fileName, &H10)

   ' If we couldn't open the file, get the last error.
   If hFile = -1 Then
      lastErr = Err.LastDllError
   ' Make sure we close the file on success.
   Else
      lclose (hFile)
   End If

   ' Check for sharing violation error.
   If (hFile = -1) And (lastErr = 32) Then
      IsFileAlreadyOpen = True
   Else
      IsFileAlreadyOpen = False
   End If

End Function


bevor du also etwas mit der Datei machst, prüfst du mit der Funktion, ob es möglich ist.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline froehlich2000

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #7 am: 12.10.05 - 12:59:38 »
danke erstmal...mit dir("dateiname") funktioniert es

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #8 am: 12.10.05 - 16:26:57 »
Mir ist immer noch nicht ganz klar, was Du da treibst ... Wozu dieser 30malige Versuch, eine Datei zu öffnen ?
Abgesehen davon: Du belegst mit Deinem ersten Öffnen (auch, wenn das nicht klappt), sowohl Dein sFile, ebenso wie Du den FileHandle filenum dabei verballerst. Ab dem zweiten Versuch kann das dann nicht mehr klappen. Du musst diese instantiierten Objekte vorher vernihten, bevor Du es erneut versuchst.

Bernhard

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #9 am: 12.10.05 - 21:04:22 »
Er hat imho mit dem dir(filename) Funktion die korrekte Lösung geliefert.

Das passiert, wenn man etwas z.B. mit einem Host austauscht und es direkt zurückhaben will. 
Wir stellen sowas übrigens mit Erfolg auf Websphere MQ um. Ist einfach sauberer. Websphere MQ ist ein Messaging System (Stichwort: quasi völlig entkoppelter und sicherer Austausch von Informationen zwischen heterogenen Systemen).
Es gibt mittlerweile auch andere brauchbare Messaging Systeme. Allerdings in Java.
http://www.manageability.org/blog/stuff/open-source-jms-java/view
Interessantes Thema, aber kriegt man nicht an einem Nachmittag in den Griff.
Wenn das aber erstmal läuft, ist es eine gute Sache.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #10 am: 12.10.05 - 22:08:26 »
Ist das nicht ein wenig heftig, Axel ? Websphere MQ, nur um ein File auf OS-Ebene zu öffnen ? Okay, schön, wenn man es nutzen kann, aber ...
Ab gesehen davon: Es liegt trotzdem am nach wie vor offenen Filehandle (auch, wenn dieser nirgendwo hinzeigt).

Bernhard

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #11 am: 12.10.05 - 22:19:20 »
Bernhard,

Es geht hier offenbar darum, dass Daten von einem Fremdsystem integriert werden.
(Das Stichwort Datenversorgung fiel).
Das lief bei uns vorher immer über csv Dateien und jetzt über Websphere MQ. Und das ist aus verschiedenen Gründen besser (Zuverlässigkeit, aktuellere Daten, Skripte sind einfacher, wenn der Rahmen steht, besser zu monitoren und zu loggen, in unserem Fall: Daten sind aktuell).
Natürlich nehme ich nicht Websphere MQ, "um ein File zu öffnen".
Aber hinter ein File öffnen stehen ja sehr unterschiedliche Business-Cases und es existieren Business Cases, bei denen sich Kunden positiv über die Situation nach der Websphere MQ Aktion äussern. Die wissen gar nicht unbedingt das Websphere MQ da mitspielt. Für die ist das "Online-Versorgung".

Über Websphere MQ läuft das gar nicht mehr einfach über Files. Und er wollte damit ja nur abchecken, ob das File da ist und das geht (wie richtig erkannt) mit der Dir(Filename) Funktion besser und da werden keine Filehandles geöffnet.

Gruß Axel
« Letzte Änderung: 13.10.05 - 06:31:13 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline froehlich2000

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #12 am: 13.10.05 - 08:07:00 »
morgen,

neues problem...auf dem clienten läuft der agent einwandfrei, nun soll der agent jedoch periodisch ein mal am tag auf dem server(unix) laufen...
hat von euch jemand ne idee ob man eine datei per ftp auf dem host einzulesen ohne sie vorher zwischenzuspeichern? nach 1h googeln bin ich immer noch nicht auf einen grünen zweig gekommen.
ich hoffe ihr könnt mir helfen.
mfg

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #13 am: 13.10.05 - 08:18:35 »
Hi
Ohne Zwischenspeichern läuft da wahrscheinlich nichts.
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline froehlich2000

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #14 am: 13.10.05 - 08:27:47 »
wirklich nicht?
dann muss ich mir aber was einfallen lassen ???

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Datei öffnen mit "Open sFile For Input As fileNum"
« Antwort #15 am: 13.10.05 - 15:48:00 »
ich glaub auch nicht, dass das geht.

Sorry. Aber ich möchte noch einmal insistieren, um zu sagen, dass für genau solche Integrationsgeschichten Messaging Server wirklich ziemlich gut sind (hier selbst erlebt, wobei es hier dafür auch eine extra Abteilung gibt). Dies lässt sich auch mit Notes 5 Java integrieren.
Eine andere Möglichkeit dafür bieten Webservices. (Es lässt sich auch beides kombinieren).

Bei uns gehen die Parameter für die Hostanforderung an eine Websphere MQ Queue. W-MQ leitet das dann an den Host. Der Host merkt, dass die Anfrage da ist. Startet den Job und sendet das Ergebnis in die W-MQ Queue und auf notes-Seite kann man das wieder abholen. Saubere Geschichte. Vor allem weil es in Websphere MQ noch eine Menge Glocken und Pfeifen für Dinge wie Reaktion auf Ausfälle auf beiden Seiten, etc. gibt.

Die Einrichtung einer solchen Infrastruktur ist kein mal-eben-2-Tage Projekt, sondern die Einführung einer neuen Infrastrukturkomponente. Ich glaub das macht in einer Menge von Umgebungen Sinn (v.a. wenn sie heterogen sind: host, as-400, unix, etc.).


Ich verfolge mit diesem Posting keine kommerziellen Absichten.
Hier ist eine lustige Gegenmeinung: http://www.jroller.com/page/fate/20031124
Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz