formaldehyd
Enthusiast
Moin,
das Script soll folgendes machen:
Inhalt der Textdatei Zeile für Zeile einlesen in ein Array
Den Inhalt des Arrays alphabetisch sortieren ( bubblesort )
die Textdatei im "überschreiben"-Modus öffnen und den Inhalt des Arrays wieder Zeile für Zeile in die Textdatei schreiben ...
Inhalt der Textdatei:
Michael.doc
Adrian.doc
Caroline.doc
Viola.doc
Doris.doc
das soll dann folgendermaßen aussehen:
Adrian.doc
Caroline.doc
Doris.doc
Michael.doc
Viola.doc
Das is das fragment des Scripts:
das Problem:
Wenn dann eine neue Datei erstellt wird und eine neue Zeile in die Textdatei kommt passiert folgendes:
das script nimmt den untersten datenssatz ( den neuen )
löscht alle andere und gibt mir dann eine textdatei mit einer leeren zeile
und dem neuesten datensatz in der 2. zeile zurück ...
ich hab schon paar sachen durchprobiert aber bisher konnte ich den fehler nicht beheben ... wahrscheinlich hab ich irgendwo n denkfehler und find ich selbst nicht ...
evtl hat ja jemand n schärferes auge als ich
danke im vorraus
das Script soll folgendes machen:
Inhalt der Textdatei Zeile für Zeile einlesen in ein Array
Den Inhalt des Arrays alphabetisch sortieren ( bubblesort )
die Textdatei im "überschreiben"-Modus öffnen und den Inhalt des Arrays wieder Zeile für Zeile in die Textdatei schreiben ...
Inhalt der Textdatei:
Michael.doc
Adrian.doc
Caroline.doc
Viola.doc
Doris.doc
das soll dann folgendermaßen aussehen:
Adrian.doc
Caroline.doc
Doris.doc
Michael.doc
Viola.doc
Das is das fragment des Scripts:
Code:
'***************Worddokument erstellen*****************
dateipfad="E:\vsd_wiki\"&catg&"\doks\"&fname
Set objword = createobject("Word.application")
objWord.Documents.add
objWord.ActiveDocument.SaveAs(dateipfad)
objWord.Quit
'***************Name des Worddocs in die db.text schreiben****************
Dim objFileSystem, objOutputFile,strOutputFile
Const APPEND = 8
strOutputFile = "E:\vsd_wiki\"&catg&"\db.txt"
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objOutputFile = objFileSystem.OpenTextFile(strOutputFile, APPEND)
if inStr(fname, ".doc") = 0 then
fname = fname & ".doc"
end if
objOutputFile.WriteLine(fname)
objOutputFile.Close
'***************Inhalt von db.text in Array arrSortieren einlesen ****************
dbPfad = "E:\vsd_wiki\"&catg&"\db.txt"
Dim arrSortieren()
Const ForReading = 1
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile(dbPfad, ForReading)
Do Until f.AtEndofStream
ReDim PreServe arrSortieren(x)
org_zeile = f.Readline
arrSortieren(x) = org_zeile
x = x + 1
Loop
f.Close
function bubblesort(arrSortieren)
for i = 0 to ubound(arrSortieren)
for j = i + 1 to ubound(arrSortieren)
if arrSortieren(i) > arrSortieren(j) then
arTremp = arrSortieren(i)
arrSortieren(i) = arrSortieren(j)
arrSortieren(j) = arrTemp
end if
next
next
bubblesort = arrSortieren
end function
arrSorted = bubblesort(arrSortieren)
'***************Inhalt von arrSortieren in db.txt schreiben ****************
Set fsoz = CreateObject("Scripting.FileSystemObject")
set File = fsoz.OpenTextFile("E:\vsd_wiki\"&catg&"\db.txt", 2, false)
For i = 0 To UBound(arrSorted)
eintrag = arrSorted(i)
File.WriteLine(eintrag)
i = i + 1
Next
File.close
das Problem:
Wenn dann eine neue Datei erstellt wird und eine neue Zeile in die Textdatei kommt passiert folgendes:
das script nimmt den untersten datenssatz ( den neuen )
löscht alle andere und gibt mir dann eine textdatei mit einer leeren zeile
und dem neuesten datensatz in der 2. zeile zurück ...
ich hab schon paar sachen durchprobiert aber bisher konnte ich den fehler nicht beheben ... wahrscheinlich hab ich irgendwo n denkfehler und find ich selbst nicht ...
evtl hat ja jemand n schärferes auge als ich
danke im vorraus