Autor Thema: Datei1 einlesen bearbeiten , Datei 2 schreiben  (Gelesen 15385 mal)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Datei1 einlesen bearbeiten , Datei 2 schreiben
« 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

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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
Grüßle Toni :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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
Grüßle Toni :)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #4 am: 11.09.03 - 12:18:31 »

@koehlerbv
BINGO !

Anton und Bernhard :

Herzlichen Dank

Ciao
Don Paquale



Offline andrew22

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Ich liebe dieses Forum!
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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 ) ?!  ;)  ???

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #6 am: 14.06.05 - 12:45:54 »
Manomann, das hatten wir Dir jetzt schon mehrfach gesagt: Das geht bei sequentiellen Files nicht.
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

Offline andrew22

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Ich liebe dieses Forum!
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #7 am: 14.06.05 - 14:17:52 »
und wie wäre ein Beispiele bei einer Random Datei ?  ???  ;)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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

Offline andrew22

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Ich liebe dieses Forum!
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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 .


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #10 am: 14.06.05 - 16:48:56 »
Ich gebe es auf ...

Offline littleS

  • Junior Mitglied
  • **
  • Beiträge: 78
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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.

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: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline andrew22

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Ich liebe dieses Forum!
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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?
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

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: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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 ?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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.

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #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?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Datei1 einlesen bearbeiten , Datei 2 schreiben
« Antwort #19 am: 25.05.10 - 15:18:07 »
Du solltest die Datei nach dem Einlesen auch wieder schließen (Close #filenum)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz