Autor Thema: Dateiverarbeitung unter Script  (Gelesen 2338 mal)

Offline rasacani

  • Aktives Mitglied
  • ***
  • Beiträge: 155
  • Geschlecht: Männlich
  • Ich brauche dieses Forum!
Dateiverarbeitung unter Script
« am: 05.12.05 - 10:41:15 »
Hallo zusammen

Ich möchte in einem Agenten eine Datei lesen um neue Datensätze in der DB zu erzeugen.

Verzeichnisse:
        Datei          e:domino\data\transferdaten\reiselotus.dat
        DB              e:domino\data\ges\abt\reiseplaner.nsf

Script:
        decl.:          Type datensatz
                  sap_pnr As String*8
                  sap_name As String*40
                  sap_vname As String*40
                          End Type

        init.:      Sub Initialize
            Dim satz As datensatz
            Dim lese_ind As Integer
            lese_ind = 1   
            Open "e:domino\data\transferdaten\reiselotus.dat" _
                              For Random  Access Read Write As #1  Len = Len(satz)
            Get #1, lese_ind, satz
            Messagebox " Pers-Nummer:" & satz.sap_pnr & "#"   
            Close #1
        End Sub

Starte ich den Agenten so bekomme ich folgende Fehlermeldung:

         unable to open file


Findet das Script die Verbindung zur Datei nicht? Oder habe ich sost einen Denkfehler?

Wer kann helfen?







Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Dateiverarbeitung unter Script
« Antwort #1 am: 05.12.05 - 10:55:11 »
Da fehlt ein Backslash
Code
Open "e:domino\data\transferdaten\reiselotus.dat" _
                              For Random  Access Read Write As #1  Len = Len(satz)

aber
Frage: Warum random wenn du doch nur Zeile für Zeile lesen willst? Input wäre da doch besser
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline rasacani

  • Aktives Mitglied
  • ***
  • Beiträge: 155
  • Geschlecht: Männlich
  • Ich brauche dieses Forum!
Re: Dateiverarbeitung unter Script
« Antwort #2 am: 05.12.05 - 11:03:14 »
Hallo

In meinem Buch habe ich das so verstanden, daß ich bei Random direkt in verschiedene Felder lesen kann und die Positionierung für das Lesen des nächsten Satzes nicht berücksichtigen brauch.

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Dateiverarbeitung unter Script
« Antwort #3 am: 05.12.05 - 11:06:17 »
Code
Open "e:domino\data\transferdaten\reiselotus.dat" _
                              For Random  Access Read Write As #1  Len = Len(satz)
Mach mal ein E:\domino\..... draus. ;)
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Dateiverarbeitung unter Script
« Antwort #4 am: 05.12.05 - 11:16:09 »
Hallo

In meinem Buch habe ich das so verstanden, daß ich bei Random direkt in verschiedene Felder lesen kann und die Positionierung für das Lesen des nächsten Satzes nicht berücksichtigen brauch.
Es hängt davon ab wie deine Datei aufgebaut ist.
Wenn die Zeilenorientiert ist mit einem CR/LF am Ende jeden Satzes, dann ist input die bessere Variante. Wenn du mit fixen Satzlängen arbeitest, dann random.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline rasacani

  • Aktives Mitglied
  • ***
  • Beiträge: 155
  • Geschlecht: Männlich
  • Ich brauche dieses Forum!
Re: Dateiverarbeitung unter Script
« Antwort #5 am: 05.12.05 - 11:19:18 »
Auch ein Open "E:\domino\data\transferdaten\reiselotus.dat" hilft nicht.

Vieleicht ist folgende Info noch hilfreich:

Wenn ich über den Explorer Netzlaufwerk verbinden gehe sehe ich die Datei. Über den Admi-Client seh ich sie nur wenn die Datei mit .nsf endet auch wenn alle Dateitypen angegeben werden.

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Dateiverarbeitung unter Script
« Antwort #6 am: 05.12.05 - 11:23:23 »
Ich gehe mal davon aus, dass das Script auf dem Server läuft, oder?

Wenn "E" ein Netzlaufwerk ist, dann wird der User, unter dem der Domino-Server läuft, keine Rechte haben, auf dieses zuzugreifen (siehe auch Forumssuche).

HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline rasacani

  • Aktives Mitglied
  • ***
  • Beiträge: 155
  • Geschlecht: Männlich
  • Ich brauche dieses Forum!
Re: Dateiverarbeitung unter Script
« Antwort #7 am: 05.12.05 - 11:31:35 »
Die Datei ist wie folgt aufgebaut:

         Feste Satz / Feldlänge
         hinter jedem Satz CR/LF


Das Script teste ich noch aus den Aktionen heraus später soll es als periodischer Agent in der Nacht laufen.

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Dateiverarbeitung unter Script
« Antwort #8 am: 05.12.05 - 11:33:29 »
Und wieder ein Fall für "Bitte alle Informationen mitgeben".

M3 hat recht.
Und Forumssuche benutzen. Ähnliche Themen sind schon mindestens zwei Dutzend Mal besprochen worden.

Und was den Satzaufbau angeht. Dann Input verwenden. Das geht in diesem Fall in der Regel einfacher.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Dateiverarbeitung unter Script
« Antwort #9 am: 05.12.05 - 12:46:12 »
Versuch die Dinge einfach zu halten.
Wie Thomas schon richtig gesagt hat, ist input besser.
Du liest mit input eine Datei sequentiell ein. D.h. ein Zeichen (bzw. eine Zeile) nach der anderen.

Random Access brauchst du nur, wenn du zurückspringen mußt. D.h. du hast etwas in Zeile 11 eingelesen und willst danach etwas in Zeile 9 einlesen.
Random Access braucht man heute sehr selten, weil man dafür meist Datenbanken verschiedenster Art benutzt (z.B. Notes,Relationale Datenbank, xml-Datei).

Ein Vorteil von Datenbanken gegenüber Random Access Files ist in meinen unkorekten Worten, dass man das logische Auffinden, Reinstellen und Ändern der Daten von der physischen Struktur der tatsächlichen Datenspeicherung entkoppelt hat. Bei Random Access mußt du wissen, dass an der Stelle 88 die Date Nachname von Datensatz 4 anfängt (als Beispiel). Das ist auf die Dauer fehleranfällig und nervig.

Du willst aber scheinbar nur eine Datei von oben nach unten einlesen. Dafür reicht Input mehr als aus und mit R6 besser die Stream Klassen verwenden.
Den overhead von Random Access File kannst du dir aber echt sparen. Selbst wenn es funzt würde es deinen Nachfolger irritieren, wenn du für das sequentielle Einlesen einer Datei Random Access verwenden tätest.
« Letzte Änderung: 05.12.05 - 12:48:58 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 koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dateiverarbeitung unter Script
« Antwort #10 am: 06.12.05 - 00:25:56 »
Ich würde hier auch dringend empfehlen, sich mit den Rechten auseinanderzusetzen, die ein Agent braucht, um auf Dateien ausserhalb des Notes-DataDirs zuzugreifen. Und wenn diese vielleicht noch auf einer anderen Kiste liegen ...

Meine Empfehlung:
- Breche mal Dein Problem in Einzelportionen herunter. Bisher scheitert ja schon der Zugriff auf das File, der access mode ist daher bisher uninteressant.
- Baue ein vernünftiges Errorhandling in deinen Code ein.

HTH,
Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz