[VBS] Problem mit sortierung einer Txt-Datei

formaldehyd

Enthusiast
Thread Starter
Mitglied seit
08.07.2007
Beiträge
5.042
Ort
Rheinland-Pfalz
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:
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
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh