AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
22.05.12 - 11:30:48
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Domino 5 und frühere Versionen
| |-+  Entwicklung (Moderatoren: Axel, Don Pasquale, eknori, Hoshee, ata, Thomas Schulte, koehlerbv)
| | |-+  Datei1 einlesen bearbeiten , Datei 2 schreiben
« vorheriges nächstes »
Seiten: [1] 2 Nach unten Drucken
Autor Thema: Datei1 einlesen bearbeiten , Datei 2 schreiben  (Gelesen 2347 mal)
Don Pasquale
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1390

Don Pasquale


WWW
« am: 11.09.03 - 11:38:09 »


Hi Folks,
ich möchte eine Datei öffnen, sie um die 2. und 3. Zeile kürzen und dann in eine andere Datei wegschreiben.

Ich habe Probleme mit dem

fileNum1 = Freefile()
fileNum2 = Freefile()

Die Werte für fileNum1 und fileNum2 sind beide 1 onwohl
der für fileNum2 eigentlich 2 sein müßte.

Jemand eine Idee ?
Ciao
Don Pasquale




      Dim sFile As String ' SOURCE
      Dim dFile As String ' DESTINATION
      
      
      Dim sRow() As String
      Dim sTxt As String
      Dim fileNum1 As Integer
      Dim fileNum2 As Integer
      Dim counter As Integer
      
        ' # Die Datei zuweisen und öffnen...
      sFile =    cPath &          nDoc.UniversalID & ".xml"   
      dFile =    cPath & "__" & nDoc.UniversalID & ".xml"   
      
      fileNum1 = Freefile()
      fileNum2 = Freefile()
      
      Open sFile For Input As fileNum1
      Open dFile For Output As fileNum2
      
        ' # ... zeilenweise einlesen
      counter = -1
      Do While Not Eof( fileNum1 ) ' # ... EOF = End Of File
         Line Input #fileNum1, sTxt
         counter = counter + 1
         Redim Preserve sRow( 0 To counter )
         sRow( counter ) = sTxt
         
         If ( counter <> 2 Or counter <> 3  ) Then
            Print #fileNum2 , sRow( counter )
         End If
      Loop   
           ' # ... das Array weiterverarbeiten...
      
        ' # Die Datei wieder schließen...
      Close fileNum1
      Close fileNum2
      
   Wend
Gespeichert
ata
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 5006


drenaiondrufflos


WWW
« Antworten #1 am: 11.09.03 - 11:44:23 »

... bestimme die Laufzahl manuell, indem du eine fixe Zahl vergibst - ist zwar nicht ganz sauber, aber hilft zuweilen

ata
Gespeichert

Grüßle Toni Smiley
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 19044



« Antworten #2 am: 11.09.03 - 11:51:18 »

FileNum muß ja auch immer den gleichen Wert ergeben, da danach kein File geöffnet (und damit belegt) wird.
Versuch' mal, nach FreeFile gleich das Open folgen zu lassen.

Bernhard
Gespeichert
ata
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 5006


drenaiondrufflos


WWW
« Antworten #3 am: 11.09.03 - 11:55:42 »

... da habe ich gar nicht darauf geachtet...

... ich verwende Freefile eigentlich nur, wenn ich mehrere Files in einer Schlaufe öffnen muß...

ata
Gespeichert

Grüßle Toni Smiley
Don Pasquale
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1390

Don Pasquale


WWW
« Antworten #4 am: 11.09.03 - 12:18:31 »


@koehlerbv
BINGO !

Anton und Bernhard :

Herzlichen Dank

Ciao
Don Paquale


Gespeichert
andrew22
Aktives Mitglied
***
Offline Offline

Beiträge: 126


Ich liebe dieses Forum!


« Antworten #5 am: 14.06.05 - 12:27:12 »

Was jetzt noch cool wäre wenn man aus der Source Datei jede Zeile raußnimmt .

sprich in der schleife nachdem in neue Datei die Zeile geschrieben ist -> diese Zeile aus Source ( alter Datei löschen ) ?!  Wink  Huh
Gespeichert
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #6 am: 14.06.05 - 12:45:54 »

Manomann, das hatten wir Dir jetzt schon mehrfach gesagt: Das geht bei sequentiellen Files nicht.
Gespeichert

Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6
andrew22
Aktives Mitglied
***
Offline Offline

Beiträge: 126


Ich liebe dieses Forum!


« Antworten #7 am: 14.06.05 - 14:17:52 »

und wie wäre ein Beispiele bei einer Random Datei ?  Huh  Wink
Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 19044



« Antworten #8 am: 14.06.05 - 14:30:59 »

Auch das wurde bereits erläutert - diese erfordern fixed length records und diese lassen sich dann bestenfalls überschreiben, aber nicht löschen.

Sag doch lieber mal an, was Du da überhaupt anstellen willst. Vielleicht findet sich dann eher eine Lösung als bei diesem Herumstochern.

Bernhard
Gespeichert
andrew22
Aktives Mitglied
***
Offline Offline

Beiträge: 126


Ich liebe dieses Forum!


« Antworten #9 am: 14.06.05 - 16:08:13 »

nun ja man könnte ja die zeile überschreiben mit nichts sozusagen so das sie leer ist ..

Ich habe eine Datei. Die Daten werden Zeile für Zeile ausgelesen und in einem Agent Zeile nach Zeile verarbeitet.

Sprich : 1. Zeile wird ausgelesen , dann verarbeitet , dann in neue datei geschrieben . So das klappt alles jetzt müßte eigentlich nur noch zum schluss die Zeile in der alten datei gelöscht werden oder überschrieben werden mit "Nichts" sozusagen sprich nachdem zeile in neue datei geschrieben wurde zeile in alter datei überschreiben / löschen .

Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 19044



« Antworten #10 am: 14.06.05 - 16:48:56 »

Ich gebe es auf ...
Gespeichert
littleS
Junior Mitglied
**
Offline Offline

Beiträge: 78



« Antworten #11 am: 15.06.05 - 09:32:51 »

Hi,

also wenn Datei1 dein Original ist und Datei2, das Ergebnis deines Agenten, dann laß den Agenten doch noch eine Datei3 erstellen, in dem du nur die Zeilen aus Datei1 nimmst, die erhalten bleiben sollen, und lösche zum Schluß Datei1 und benenne Datei3 in Datei1 um.
Oder wenn du weißt das alles aus Datei1 gelöscht werden soll, dann lösch sie, sobald dein Agent fertig ist.

s.
Gespeichert
Axel
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8484


It's not a bug, it's Notes


« Antworten #12 am: 15.06.05 - 09:56:32 »

Sprich : 1. Zeile wird ausgelesen , dann verarbeitet , dann in neue datei geschrieben . So das klappt alles jetzt müßte eigentlich nur noch zum schluss die Zeile in der alten datei gelöscht werden oder überschrieben werden mit "Nichts" sozusagen sprich nachdem zeile in neue datei geschrieben wurde zeile in alter datei überschreiben / löschen .

Hi,

ich verstehe immer noch nicht, warum die verarbeitete Zeile aus Datei1 gelöscht werden soll. Erklär das mal genauer.

Es gibt eine einfache Lösung für das Problem: da der Agent die alle Zeilen in Datei1 verarbeitet, dann lösch doch einfach die Datei nach Abarbeitung aller Zeilen.


Axel
 
Gespeichert

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

Server: 6.5.x; 7.0.x; 8.5.1 auf Win2000/Win2003 (R2) 32/64bit
Clients: 6.5.x bis 8.5.1 dt. und engl. auf W2K und WinXP
andrew22
Aktives Mitglied
***
Offline Offline

Beiträge: 126


Ich liebe dieses Forum!


« Antworten #13 am: 15.06.05 - 13:37:13 »

also der Hintergrund ist der : In der Datei stehen z.B. 1000 Telnummern drin die in Datenbank per Agent eingelesen werden sollen.

Wenn nun sagen wir mal nach dem 500ersten Datensatz etwas abkackt und man von vorn anfangen muss wäre es doch blöd erst die ersten 500 Datensätze die schon in Datenbank sind nochmal einzufügen .

man könnte also jede Zeile nach und nach raußlöschen.

das ist der Hintergrund..

so ist halt die Anfrage und der Wunsch das es so läuft ...

Tips und Tricks freu ich mich drüber
Gespeichert
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #14 am: 15.06.05 - 13:51:57 »

a) wie gross ist denn die Chance, dass etwas schief läuft?
b) wie lange gurgelt denn das Ding an der Handvoll Datensätze?
Gespeichert

Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6
Axel
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8484


It's not a bug, it's Notes


« Antworten #15 am: 15.06.05 - 14:47:31 »

Hi,

das Ganze bezieht sich doch auf diesen Thread, oder?

Meines Erachtens sollte die Diskussion dort weitergeführt werden. DEshalb findest du meine Antwort dort.


Axel
Gespeichert

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

Server: 6.5.x; 7.0.x; 8.5.1 auf Win2000/Win2003 (R2) 32/64bit
Clients: 6.5.x bis 8.5.1 dt. und engl. auf W2K und WinXP
Alperen15
Aktives Mitglied
***
Offline Offline

Geschlecht: Weiblich
Beiträge: 192


« Antworten #16 am: 25.05.10 - 13:24:07 »

wie sieht es aus, wenn ich z.b 3 textdateie habe und nur jeweils die erste zweile auslesen möchte? vllt als kontrolle für mich, die ausgabe per msgbox ? wie sieht der quelltext aus ?
Gespeichert
Peter Klett
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 1352



« Antworten #17 am: 25.05.10 - 14:10:14 »

Schau Dir mal das Beispiel in der Hilfe zu Line Input an, dann bekommst Du den Rest auch hin.
Gespeichert
Alperen15
Aktives Mitglied
***
Offline Offline

Geschlecht: Weiblich
Beiträge: 192


« Antworten #18 am: 25.05.10 - 14:27:40 »

Sub Initialize
   
   Dim filename As String
   Dim PathFilename As String
   Dim filenum As Integer
   Dim i As String
   
   PathName$ = "E:\TestKUR\Attachements\*.txt"
   Filename$ = Dir$(PathName$, 0)
   
   Do While Filename$ <> ""
      If  Isempty(Filename$) Then
         Exit Sub
      End If     
      Msgbox Filename$
      
      'lese erste zeile
      Open Filename$ For Input As filenum
      Seek fileNum,1   
      Line Input #filenum, i
      
      Filename$ = Dir$()
   Loop
End Sub

jetzt hab ich es so, da kommt eine fehlermeldung --> illegal Filenumber ..... wieso ist es nicht gültig?
Gespeichert
Peter Klett
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 1352



« Antworten #19 am: 25.05.10 - 15:18:07 »

Du solltest die Datei nach dem Einlesen auch wieder schließen (Close #filenum)
Gespeichert
Seiten: [1] 2 Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig