Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Demian am 29.03.07 - 11:52:59

Titel: .dat Dateien öffnen, Zeilen löschen, neu schreiben
Beitrag von: Demian am 29.03.07 - 11:52:59
Moin,moin,

ich habe eine .dat Datei, die folgendermaßen aufgebaut ist:

Code
[KOSTENTRAEGER]
        =Ohne Kostenträger
10      =Automation Allgemein
10842   =
10844   =Fuhrpark DO Schloss.
10845   =Fuhrpark DO Schloss.
10853   =Reinig. Werksh. 2003
10854   =Reinigung Schloss.
10855   =Reinigung Schloss.
10863   =Werkz. Lag. Schloss.
10864   =WZL Schlosserei
10865   =WZL Schlosserei
10892   =
00001281003E2633

Ist es möglich diese Datei mittels open...for.. as filenum zu öffnen, die ersten beiden und die letzte Zeile zu erhalten oder in Variablen zu speichern und alle Zeilen dazwischen zu löschen, damit die Daten neu eingelesen werden können?

Gruß
Demian

PS: Bin mir nämlich nicht sicher, ob die Dateien einfach gelöscht und neu erstellt werden können. Sie stammen aus unserem Zeiterfassungssystem. 
Titel: Re: .dat Dateien öffnen, Zeilen löschen, neu schreiben
Beitrag von: koehlerbv am 29.03.07 - 11:57:29
Das ist möglich, allerdings
- musst Du das Textfile zeilenweise einlesen (Random access ist mit Textfiles nicht möglich)
- und die gewünschten Zeilen dann in eine neue Datei schreiben (ggf. vorher die alte löschen).

Bernhard
Titel: Re: .dat Dateien öffnen, Zeilen löschen, neu schreiben
Beitrag von: Demian am 29.03.07 - 12:23:12
Moin Bernhard,

das mit zeilenweise hab ich fast befürchtet. Der gezeigt Ausschnitt war natürlich nur ein Bruchteil der echten Datei, so dass zeilenweises Auslesen der ganzen Datei seine Zeit dauert. Aber wenns nicht anders geht...

Und wie lösche ich alle Zeilen ohne die eigentlich Datei zu löschen? Wie gesagt, ich weiß nicht ob diese komplett gelöscht werden kann.

Gruß
Demian
Titel: Re: .dat Dateien öffnen, Zeilen löschen, neu schreiben
Beitrag von: koehlerbv am 29.03.07 - 16:54:18
- und die gewünschten Zeilen dann in eine neue Datei schreiben (ggf. vorher die alte löschen).

Wie schon gesagt: Du kannst aus einem Textfile keine Zeilen löschen, sondern musst eine neue erstellen.
Beispiel:
- Datei einlesen
- gewünschte Zeilen in Variable einlesen
- alte Datei löschen
- mit den Werten aus der Variablen neue Datei gleichen Namens erstellen.

Bernhard
Titel: Re: .dat Dateien öffnen, Zeilen löschen, neu schreiben
Beitrag von: Demian am 30.03.07 - 08:22:41
Ok,

hatte das in deinem 1. Beitrag übersehen. Gut, dann muss ich wohl warten bis mir unsere Zeiterfassungsfirma Bescheid sagt, ob die Dateien ohne weiteres kurzzeitig gelöscht werden können.

Danke.

Gruß
Demian
Titel: Re: .dat Dateien öffnen, Zeilen löschen, neu schreiben
Beitrag von: Demian am 30.03.07 - 09:38:46
Also, ich habe eben Rückmeldung erhalten -> die Dateien können kurzzeitig gelöscht werden. Vereinfacht die Sache ungemein. Da die ersten beiden und die letzte Zeile für die jeweiligen Dateien konstant sind, werde ich die jeweiligen Werte in Notesdokumente schreiben, und in den Ansichten für die einzelnen Dateien irgendwie kennzeichnen, damit sie in der richtigen Zeile erscheinen.

Vielen Dank Bernhard.

Gruß
Demian
Titel: Re: .dat Dateien öffnen, Zeilen löschen, neu schreiben
Beitrag von: Demian am 31.03.07 - 12:03:01
Moin,moin,

habe da doch noch ein kleines Problem. Ich erzeuge die Datei mit folgendem Code:

Code
Function ZMKST0bis8dat_exportieren(Datei As String)
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim view As NotesView
	Dim doc As NotesDocument
	Dim filenum As Integer
	
	Set db = s.CurrentDatabase
	'Start = 9, da Verzeichnis = "T:\Zeit\
	Set view = db.GetView(Mid(Datei,9,10))
	
	Set doc = view.GetFirstDocument
	test = doc.Text(0)
	filenum = Freefile
	
	Open Datei For Output As filenum
	For i = 1 To view.AllEntries.Count
		Write #filenum, doc.text(0)
		Set doc = view.GetNextDocument(doc)
	Next
	Close filenum	
End Function

Funktioniert an sich auch wunderbar, jedoch schreibt er mir den Inhalt des Feldes doc.Text mit " " in die Datei. Woran liegt das, bzw. wie kann man das beheben?

Gruß
Demian
Titel: Re: .dat Dateien öffnen, Zeilen löschen, neu schreiben
Beitrag von: m3 am 31.03.07 - 18:45:38
Die Designer-Hilfe Dein Freund ist. Nachlesen in dem Kapitel "Write # Statement" Du kannst:

Data type:
String   
Write # statement behavior
Encloses all strings in double quotation marks. Pads fixed-length strings with spaces as needed.
Titel: Re: .dat Dateien öffnen, Zeilen löschen, neu schreiben
Beitrag von: LN4ever am 31.03.07 - 19:52:43
Nimm PRINT anstelle von WRITE, wenn du die Anführungszeichen nicht brauchst.

Gruß

Norbert
Titel: Re: .dat Dateien öffnen, Zeilen löschen, neu schreiben
Beitrag von: Demian am 01.04.07 - 11:35:35
Moin,moin,

ich dachte write wäre das Gegenstück zu Datei.writeline bei Scripting.FileSystemObject, deswegen habe ich in der Hilfe das auch gar nicht gesehen. Aber gut zu wissen, werde dann print nehmen.

Danke euch beiden.

Gruß
Demian