Autor Thema: Dokument suchen und Daten ändern  (Gelesen 67636 mal)

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Dokument suchen und Daten ändern
« Antwort #100 am: 18.07.08 - 10:40:20 »
Hallöchen, :D
hab noch ein wenig rumgebastelt, da die Berechtigung vorhanden war.
Und siehe da -> ein \ fehlte.

So weit so gut. Das Script läuft nun fehlerfrei drüber, jedoch müsste es lt. Vorgaben einen Feldwert ändern, tut dies aber noch nicht.

Hab mal debugt und nach
aktfile = Dir$( servername & "\" & dateipfad & "*.*",0)
   If aktfile <> "" Then

hüpft er gleich auf End if.
Das heißt doch, dass er zwar den Pfad aber die Datei nicht findet oder?
Gruß
Gruß Jason

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Dokument suchen und Daten ändern
« Antwort #101 am: 18.07.08 - 10:46:59 »
Das heißt doch, dass er zwar den Pfad aber die Datei nicht findet oder?

Genau das heißt das.

Mit *.* findet er eigentlich jede x-beliebige Datei. Außerdem fehlt zwischen dateipfad und *.* ein Backslash. Wenn du prüfen willst, ob eine bestimmte Datei vorhanden ist, solltest du einen Dateinamen angeben.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Driri

  • Gast
Re: Dokument suchen und Daten ändern
« Antwort #102 am: 18.07.08 - 10:56:18 »
Eine Antwort auf meine Frage steht noch aus. Ist sichergestellt, daß im Profildokument die korrekten Werte stehen ?

Wenn servername und dateipfad leer sind, dürfte er im Root nach einer Datei suchen.

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Dokument suchen und Daten ändern
« Antwort #103 am: 18.07.08 - 13:20:42 »
Eine Antwort auf meine Frage steht noch aus. Ist sichergestellt, daß im Profildokument die korrekten Werte stehen ?

Wenn servername und dateipfad leer sind, dürfte er im Root nach einer Datei suchen.

Alos hier die Daten vom Profildok
Feld Server ist gefüllt mit -> \\Filename
Dateinname ist gefüllt mit -> laufwerksname/Ordnername


Gruß Jason

Driri

  • Gast
Re: Dokument suchen und Daten ändern
« Antwort #104 am: 18.07.08 - 13:28:40 »
Zitat
Feld Server ist gefüllt mit -> \\Filename
Dateinname ist gefüllt mit -> laufwerksname/Ordnername

Ähm, wenn ich das richtig verstehe, steht dann z.B. so etwas da drin ?

Server = "\\test.txt"
Dateiname = "C:\test\"

Weil wenn dem so ist, dann würde Dir in folgendem Pfad suchen :

\\test.txt\C:\test\*.*

Ich würde vorschlagen, Du schaust Dir mal im Debugger an, was da überhaupt in den Variablen "servername" und "dateipfad" steht, wenn Du das Script ausführst.

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Dokument suchen und Daten ändern
« Antwort #105 am: 18.07.08 - 13:47:45 »
Zitat
Feld Server ist gefüllt mit -> \\Filename
Dateinname ist gefüllt mit -> laufwerksname/Ordnername

Ähm, wenn ich das richtig verstehe, steht dann z.B. so etwas da drin ?

Server = "\\test.txt"
Dateiname = "C:\test\"

Weil wenn dem so ist, dann würde Dir in folgendem Pfad suchen :

\\test.txt\C:\test\*.*

Ich würde vorschlagen, Du schaust Dir mal im Debugger an, was da überhaupt in den Variablen "servername" und "dateipfad" steht, wenn Du das Script ausführst.

Also im Debugger steht
bei Servername: "\\Filename"
bei Dateipfad: "laufwerksname/Ordnername"
bei Aktfile: "test.txt"
Gruß Jason

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Dokument suchen und Daten ändern
« Antwort #106 am: 18.07.08 - 14:12:06 »
Also mal ganz ehrlich, bei den Variableninhalten ist das doch ganz offensichtlich, dass das nicht funktionieren kann.

Heißt euer Server wirklich Filename?
Der Dateipfad heißt auch berstimmt nicht laufwerksname/Ordnername.
Der Inhalt von aktfile passt auch nicht so ganz.

Sorge erstmal dafür, dass das vernüftige Werte drinstehen und sehen wir weiter.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Dokument suchen und Daten ändern
« Antwort #107 am: 18.07.08 - 14:18:50 »
Also mal ganz ehrlich, bei den Variableninhalten ist das doch ganz offensichtlich, dass das nicht funktionieren kann.

Heißt euer Server wirklich Filename?
Der Dateipfad heißt auch berstimmt nicht laufwerksname/Ordnername.
Der Inhalt von aktfile passt auch nicht so ganz.

Sorge erstmal dafür, dass das vernüftige Werte drinstehen und sehen wir weiter.


Axel

Also unser Server heißt in echt \\A13_File
und der Pfad notes/Bestellungen
Hab es nur fürs Forum mit ähnlichen Werten ersetzt.
Beim Debugger steht in echt:
bei Servername: "\\A13_File"
bei Dateipfad: "notes/Bestellungen"

Es muss eigentlich so stimmen, denn er findet als Aktfile ja die test.txt obwohl ich ausser den o.g. Daten nichts angegeben hab.
Gruß Jason

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: Dokument suchen und Daten ändern
« Antwort #108 am: 18.07.08 - 14:42:23 »
Ich würd mal den "/" durch einen "\" ersetzten. Ist ja Windows.

Ansonsten hab ich ja schon 2x geschrieben, woran es noch liegen kann.
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 lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Dokument suchen und Daten ändern
« Antwort #109 am: 21.07.08 - 13:53:27 »
So. Hab noch weiter rumgebastelt und das Config nochmal geändert.
Dort musste ja zuerst der Server und der Dateiname getrennt in zwei Felder eingegeben werden. Was ja Käse ist und gleich in das Feld Dateipfad reinpaßt.
Hab dann den SCode geändert, dass er nur noch auf das Feld Dateipfad (mit dem kompletten Namen) zugreift.
Nun funzt es auch.
Hier der Code:
Sub Initialize
   Dim session As New notessession
   Dim db As notesdatabase
   Dim doc As Notesdocument, profdoc As Notesdocument
   Dim Dateipfad As String, aktfile As String
   Dim fileNum As Integer, cells As Integer, k As Long
   Dim fileName As String
   Dim InputStr As String, delimiter As String
   Dim FieldArray As Variant
   Dim view As NotesView
   
   Set db = session.currentdatabase
   Set profdoc = db.getprofiledocument("(Konfig)")
   Dateipfad = profdoc.Dateipfad(0)
   fileNum = Freefile()
   Set view = db.GetView ("Alle Bestellungen")
   
'Trennzeichen
   delimiter = ";"
   
   aktfile = Dateipfad
   If aktfile <> "" Then
      Open aktfile For Input As fileNum%
      Line Input #1,  InputStr$   
      Do While Not Eof(fileNum%)
         
         Line Input #1,  InputStr$
         FieldArray = Split(InputStr$,delimiter, -1, 0)
         If Not Isempty(FieldArray) Then
            Set doc = view.GetDocumentByKey(FieldArray(2))
            If Not doc Is Nothing Then
               Call doc.ReplaceItemValue("Bestelldatum", Today)
               Call doc.Save(True,True)
            End If
         End If
      Loop
      Messagebox "Datei nicht vorhanden", 16, "Fehler"
   End If
   Close fileNum%
End Sub


Wo ich aber noch auf der Leitung steh. Er sucht alle Daten der zugewiesenen txt-Datei durch und wenn er was findet, setzt er auch das Bestelldatum auf Today.
Wenn er alle durchsucht hat, schließt er aber immer mit "Datei nicht vorhanden", 16, "Fehler".

Kann mir jemand auf die Sprünge helfen?

Gruß
Gruß Jason

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Dokument suchen und Daten ändern
« Antwort #110 am: 21.07.08 - 14:01:05 »
Ja, denn die Ausgabe der Fehlermeldung erfolgt im wahrsten Sinne des Wortes Bedingugslos

Nach dem loop ein else.
Wenn dann aktfile = "" dann kommt die Meldung
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Dokument suchen und Daten ändern
« Antwort #111 am: 21.07.08 - 14:01:19 »
Aber gerne!!!

   If aktfile <> "" Then
      Open aktfile For Input As fileNum%
      Line Input #1,  InputStr$   
      Do While Not Eof(fileNum%)
         
         Line Input #1,  InputStr$
         FieldArray = Split(InputStr$,delimiter, -1, 0)
         If Not Isempty(FieldArray) Then
            Set doc = view.GetDocumentByKey(FieldArray(2))
            If Not doc Is Nothing Then
               Call doc.ReplaceItemValue("Bestelldatum", Today)
               Call doc.Save(True,True)
            End If
         End If
      Loop
      Messagebox "Datei nicht vorhanden", 16, "Fehler"   End If
   Close fileNum%
End Sub



Klassischer Abstauber  ;D

grüsse

Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Dokument suchen und Daten ändern
« Antwort #112 am: 21.07.08 - 15:26:41 »
Ja, denn die Ausgabe der Fehlermeldung erfolgt im wahrsten Sinne des Wortes Bedingugslos

Nach dem loop ein else.
Wenn dann aktfile = "" dann kommt die Meldung

Ah jetzt ja eine Insel  ;D ;D :-X

Grazie es funzt
Gruß Jason

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Dokument suchen und Daten ändern
« Antwort #113 am: 30.10.08 - 14:40:33 »
Hi Leute.
Das Script läuft ja seit Wochen ach was seit Monaten  ;D ;D
nun will/muss ich es noch ein wenig umbauen, da die Datenmenge zugenommen hat.

Zunächst:
Das Script holt sich die zu überprüfende TXT und überprüft Zeile für Zeile ob eine Produktnummer vorhanden ist, wenn ja setzt es in dem Dok mit der Produktnummer einen Feldwert.
Dann überprüft das Script die nächste Zeile usw.

Die importierende Datei ist so aufgebaut, dass
in einer Zeile die Produktnummer und der Name Lager steht.
In den Folgezeilen jeweils die gleiche Produktnummer und ein Zahlencode.
Beim Nächsten Produkt dann wieder die Nummer und Lager.

quasi so:
123456789=Lager
123456789;589QERC568996699
123456789;58322UZRD255D22D
123456789;5633366DACC22222
123456789;DS55663771111563
081508150=Lager
081508150;66589555ERTV5523
.......
Im Grunde muss er sich mit den Folgezeilen nicht lange aufhalten.
1.Wie realiesiere ich es am Besten, dass er nur immer die Zeilen, in der "Lager" steht , die Nummer holt und im Dok den Feldwert ändert?
Da würde ich doch ne Menge an Performance sparen.

2.In dem Ordner in dem die zu überprüfende TXT liegt gibt es mehrere Dateien,
die soll er alle der Reihe nach abarbeiten. Bisher war es nur eine.


Hier das bisher eingesetzte Script:
Sub Initialize
   Dim session As New notessession
   Dim db As notesdatabase
   Dim doc As Notesdocument, profdoc As Notesdocument
   Dim Dateipfad As String, aktfile As String
   Dim fileNum As Integer, cells As Integer, k As Long
   Dim fileName As String
   Dim InputStr As String, delimiter As String
   Dim FieldArray As Variant
   Dim view As NotesView
   
   Set db = session.currentdatabase
   Set profdoc = db.getprofiledocument("(Konfiguration)")
   Dateipfad = profdoc.Dateipfad_1(0)
   fileNum = Freefile()
   Set view = db.GetView ("Alle Bestellungen")
   
'Trennzeichen
   delimiter = ";"
   
   aktfile = Dateipfad
   If aktfile <> "" Then
      Open aktfile For Input As fileNum%
      Line Input #1,  InputStr$   
      Do While Not Eof(fileNum%)
         
         Line Input #1,  InputStr$
         FieldArray = Split(InputStr$,delimiter, -1, 0)
         If Not Isempty(FieldArray) Then
            Set doc = view.GetDocumentByKey(FieldArray(2))
            If Not doc Is Nothing Then
               Call doc.ReplaceItemValue("Bestelldatum", Today)
               Call doc.ReplaceItemValue("History", Today)
               Call doc.Save(True,True)
            End If
         End If
      Loop
   Else


Gruß Jason
« Letzte Änderung: 30.10.08 - 14:45:00 von lotus blue »
Gruß Jason

klaussal

  • Gast
Re: Dokument suchen und Daten ändern
« Antwort #114 am: 30.10.08 - 14:49:38 »
Zu 1: If....... = "Lager" then tue irgendetwas else weiterlesen.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Dokument suchen und Daten ändern
« Antwort #115 am: 30.10.08 - 15:11:30 »
zu 2:

Lagere den Import der Daten in eine Funktion oder Routine aus. Dann holst du dir in einer Schleife der Reihe nach alle Textdateien und rufst dann für jede diese Funktion/Routine auf.

Sinnigerweise sollten dann in diesem Verzeichnis nur solche Dateien enthalten sein. So kannst du alle Dateien verarbeiten. Sonst musst du da noch irgendwie die entsprechenen Dateien filtern.

Axel
   
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Dokument suchen und Daten ändern
« Antwort #116 am: 30.10.08 - 15:36:42 »
Zu 1: If....... = "Lager" then tue irgendetwas else weiterlesen.
Also so in der Art?
Dim suchbegriff As Variant
suchbegriff = uidoc.FieldGetText("lager")
If suchbegriff = "lager" Then
     
nur an welcher Stelle bau ich das ein?
Line Input #1,  InputStr$   
      Do While Not Eof(fileNum%)
fällt ja dann weg.
« Letzte Änderung: 30.10.08 - 15:53:27 von lotus blue »
Gruß Jason

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Dokument suchen und Daten ändern
« Antwort #117 am: 30.10.08 - 15:55:21 »
zu 2:

Lagere den Import der Daten in eine Funktion oder Routine aus. Dann holst du dir in einer Schleife der Reihe nach alle Textdateien und rufst dann für jede diese Funktion/Routine auf.

Sinnigerweise sollten dann in diesem Verzeichnis nur solche Dateien enthalten sein. So kannst du alle Dateien verarbeiten. Sonst musst du da noch irgendwie die entsprechenen Dateien filtern.

Axel
   

Die Dateinamen sind mir aber vorher nicht bekannt. Macht das was aus? Bzw. nimmt er er dann die erste, dann die zweite usw.?
« Letzte Änderung: 30.10.08 - 15:59:02 von lotus blue »
Gruß Jason

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: Dokument suchen und Daten ändern
« Antwort #118 am: 30.10.08 - 16:19:11 »
Im Grunde muss er sich mit den Folgezeilen nicht lange aufhalten.
1.Wie realiesiere ich es am Besten, dass er nur immer die Zeilen, in der "Lager" steht , die Nummer holt und im Dok den Feldwert ändert?
Da würde ich doch ne Menge an Performance sparen.
Nein, weil "Performance" kostet das Lesen von der Platte. Der check, ob da nun "Lager" steht oder nicht, fällt da nicht mehr ins Gewicht, IMHO.
Zitat von: Knuth, Donald. Structured Programming with go to Statements, ACM Journal Computing Surveys, Vol 6, No. 4, Dec. 1974. p.268
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

Zitat
2.In dem Ordner in dem die zu überprüfende TXT liegt gibt es mehrere Dateien,
die soll er alle der Reihe nach abarbeiten. Bisher war es nur eine.
Ja? Wie lautet das Problem? Entweder sind die Dateinamen bekannt, dann stehen sie in einem Array, über das Du iterieren kannst, oder Du musst sie mit Dir() auslesen.
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 lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Dokument suchen und Daten ändern
« Antwort #119 am: 03.11.08 - 08:59:05 »
Hallo Spezialisten.
Zunächst vielen Dank für Eure Rückmeldung.
Das Script von oben funktionierte bis dato einwandfrei. Nun wollte ich es ja noch umbauen.
Jetzt gibt es aber seit heute morgen ein größeres (anderes) Prob.
Die Datei ich bis dato ausgelesen hab (eine txt) war so aufgebaut, dass es leicht war den Wert zu finden (Delimeter #):
123456789#Waltraud#1255588558#Bestellung#Erich usw.
Hab nur die Artikelnummern rausgelesen.
Seit heute bekomm ich aber eine txt in folgendem Format geliefert:

123456789=Success
123456789.00000001.pdf={458968-1111-Test-Test};{Test123-1234-9999-1234-0815}


Kann mir bitte jemand weiterhelfen, wie ich das hinbekommen soll. ??? ??? :-:
Ich benötige die Artikelnummer "12345689"
« Letzte Änderung: 03.11.08 - 09:10:53 von lotus blue »
Gruß Jason

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz