Sub MAIN
'Version 1.3 1998
'Word-Basic Makro zur Konvertierierung von OnTime-Log-Dateien
'in Word- bzw. Excel-Tabellen. Resultat ist in der Zwischenablage.
'
'Copyright: Joachim von Jena jvjena@cs.tu-berlin.de, Freeware
'ohne jede Gewaehr
'
'
Sanduhr 1
AnzeigeAktualisieren
CurDir$ = Files$(".") + Chr$(92)
If Val(AbrufenSysteminfo$(24)) >= 4 Then
'If 3 >= 4 Then
   OntimeReg$ = "HKEY_CURRENT_USER\Software\Microsoft\Word\" + \
   AnwInfo$(2) + "\" + "ONTIME"
   WinVer$ = "WIN32"
Else
   OntimeReg$ = "ONTIME"
End If
If WinVer$ = "WIN32" Then
   If GetPrivateProfileString$(OntimeReg$, "OnTime-Verzeichnis", "") = "" \
      Then
      OntimeDir$ = "C:\ONTIME\"
   Else
      OntimeDir$ = GetPrivateProfileString$(OntimeReg$, \
      "OnTime-Verzeichnis", "")
   End If
Else
   If GetProfileString$(OntimeReg$, "OnTime-Verzeichnis") = "" Then
      OntimeDir$ = "C:\ONTIME\"
   Else
      OntimeDir$ = GetProfileString$(OntimeReg$, \
      "OnTime-Verzeichnis")
   End If
End If
OntimeExe$ = UCase$(OntimeDir$ + "ONTIME.EXE")
If UCase$(Files$(OntimeExe$)) <> OntimeExe$ Then
   Begin Dialog BenutzerDialog 370, 135, "Verzeichnis von ONTIME.EXE"
   Text 17, 10, 328, 79, "Bitte passen Sie das Verzeichnis, " + \
   "in dem sich ONTIME.EXE befindet, an: dieses Verzeichnis " + \
   "muss mit einem " + Chr$(34) + "\" + Chr$(34) + " enden."
   TextBox 12, 65, 330, 18, .Ontdir
   OKButton 289, 85, 55, 21
   CancelButton 241, 110, 102, 21
   End Dialog
   Dim Dlg As BenutzerDialog
   dlg.Ontdir = OntimeDir$
   x = Dialog(dlg)
   OntimeDir$ = dlg.Ontdir
   If WinVer$ = "WIN32" Then
     SetPrivateProfileString OntimeReg$, "OnTime-Verzeichnis", \
     OntimeDir$, ""
   Else
     SetProfileString OntimeReg$, "OnTime-Verzeichnis", \
     OntimeDir$
   End If
   OntimeExe$ = UCase$(OntimeDir$ + "ONTIME.EXE")
End If
ChDefaultDir OntimeDir$, 0
Temp$ = Files$("*.log")
Zhler = - 1
While Temp$ <> ""
	Zhler = Zhler + 1
	Temp$ = Files$()
Wend
If Zhler > - 1 Then
	Dim Liste$(Zhler)
	'Liste$(0) = Files$("*.log")
	lpathname$ = Files$("*.log")
	Liste$(0) = logname$(lpathname$)
	For i = 1 To Zhler
		'Liste$(i) = Files$()
		lpathname$ = Files$()
		Liste$(i) = logname$(lpathname$)
	Next i
	SortDatenfeld Liste$()
Else
	MsgBox "Das Ontime-Verzeichnis enthlt keine LOG-Dateien."
Goto bye
End If

Begin Dialog BenutzerDialog 390, 190, "Log-Dateiauswahl"
Text 27, 8, 161, 13, "Liste der Logdateien:"
	ListBox 0, 0, 240, 140, Liste$(), .Logdatei

OKButton 300, 89, 55, 21
CancelButton 260, 115, 96, 21
CheckBox 176, 147, 179, 16, "Konversion sichtbar", .Kontrollkstchen1
End Dialog

Dim Dlg As BenutzerDialog
Zeit0 = Jetzt()
x = Dialog(dlg)
If x = 0 Then Goto bye
LogDateiName$ = Liste$(dlg.Logdatei)
If dlg.Kontrollkstchen1 = 1 Then AnzeigeAktualisieren
Dateiffnen .Name = Liste$(dlg.Logdatei), .UmwandlungBesttigen = 0, \
.Schreibgeschtzt = 0, .ZuletztBearbErweitern = 0, .KennwortDok = "", \
.KennwortDokVorlage = "", .Wiederherstellen = 0, .KennwortDokSchreiben \
= "", .KennwortDokVorlageSchreiben = ""
BearbeitenErsetzen .Suchen = "     ", .Ersetzen = "|", .Richtung = 0, \
.GroKleinschreibung = 0, .GanzesWort = 0, .Mustervergleich = 0, \
.Reserviert23 = 0, .AllesErsetzen, .Format = 0, .Textflu = 1
BearbeitenErsetzen .Suchen = "    ", .Ersetzen = "|", .Richtung = 0, \
.GroKleinschreibung = 0, .GanzesWort = 0, .Mustervergleich = 0, \
.Reserviert23 = 0, .AllesErsetzen, .Format = 0, .Textflu = 1
BearbeitenErsetzen .Suchen = "   ", .Ersetzen = "|", .Richtung = 0, \
.GroKleinschreibung = 0, .GanzesWort = 0, .Mustervergleich = 0, \
.Reserviert23 = 0, .AllesErsetzen, .Format = 0, .Textflu = 1
BearbeitenErsetzen .Suchen = "  ", .Ersetzen = "|", .Richtung = 0, \
.GroKleinschreibung = 0, .GanzesWort = 0, .Mustervergleich = 0, \
.Reserviert23 = 0, .AllesErsetzen, .Format = 0, .Textflu = 1
BearbeitenErsetzen .Suchen = " ", .Ersetzen = "|", .Richtung = 0, \
.GroKleinschreibung = 0, .GanzesWort = 0, .Mustervergleich = 0, \
.Reserviert23 = 0, .AllesErsetzen, .Format = 0, .Textflu = 1
BeginnDokument
Print "Konversion von " + Chr$(34) + LogDateiName$ +  Chr$(34) + \
" luft, bitte warten ..."
AbsatzUnten 1, 1
If Len(AbrufenTextmarke$("\Sel")) = 46 Then
logtype$ = "alt"
ElseIf Len(AbrufenTextmarke$("\Sel")) = 58 Then
logtype$ = "neu"
End If
If logtype$ = "neu" Then
ZeichenRechts
FormatVerbindung
Else
ZeichenRechts
ZeichenLinks
Einfgen "|Verbindung:"
ZeichenRechts
FormatVerbindung
logtype$ = "neu"
End If
BearbeitenAllesMarkieren
CurrentFeldTrZ$ = FeldTrennzeichen$()
FeldTrennzeichen$ "|"
If logtype$ = "alt" Then
LogSpalten$ = "9"
Else
LogSpalten$ = "10"
End If
TextInTabelle .UmwandelnVon = "3", .AnzSpalten = LogSpalten$, \
.AnzTabZeilen = "91", .AnfSpaltenbreite = "Auto", .Format = "0", \
.Zuweisen = "167"
FeldTrennzeichen$ CurrentFeldTrZ$
BeginnDokument
TabelleSpaltenBreite .SpaltenBreite = "0,87 cm", .AbstandZwischenSpalten \
= "0,2 cm", .NchsteSpalte, .LinealArt = "0"
TabelleSpaltenBreite .SpaltenBreite = "2,25 cm", .AbstandZwischenSpalten \
= "0,2 cm", .NchsteSpalte, .LinealArt = "0"
TabelleSpaltenBreite .SpaltenBreite = "1,86 cm", .AbstandZwischenSpalten \
= "0,2 cm", .NchsteSpalte, .LinealArt = "0"
TabelleSpaltenBreite .SpaltenBreite = "1,86 cm", .AbstandZwischenSpalten \
= "0,2 cm", .NchsteSpalte, .LinealArt = "0"
TabelleSpaltenBreite .SpaltenBreite = "1,86 cm", .AbstandZwischenSpalten \
= "0,2 cm", .NchsteSpalte, .LinealArt = "0"
TabelleSpaltenBreite .SpaltenBreite = "0,45 cm", .AbstandZwischenSpalten \
= "0,2 cm", .NchsteSpalte, .LinealArt = "0"
TabelleSpaltenBreite .SpaltenBreite = "0,45 cm", .AbstandZwischenSpalten \
= "0,2 cm", .NchsteSpalte, .LinealArt = "0"
TabelleSpaltenBreite .SpaltenBreite = "0,87 cm", .AbstandZwischenSpalten \
= "0,2 cm", .NchsteSpalte, .LinealArt = "0"
If logtype$ = "alt" Then
TabelleSpaltenBreite .SpaltenBreite = "1,18 cm", .AbstandZwischenSpalten \
= "0,2 cm", .LinealArt = "0"
ElseIf logtype$ = "neu" Then
TabelleSpaltenBreite .SpaltenBreite = "1,18 cm", .AbstandZwischenSpalten \
= "0,2 cm", .NchsteSpalte, .LinealArt = "0"
TabelleSpaltenBreite .SpaltenBreite = "4,5 cm", .AbstandZwischenSpalten \
= "0,2 cm", .LinealArt = "0"
End If
TabelleTabelleMarkieren
FormatAbsatz .Ausrichtung = 2
FormatZeichen .Punkt = "9", .Schriftart = "Courier New"
TabelleAutoFormat .Format = 11, .Rahmen = 1, .Schattierung = 0, \
.Schriftart = 0, .Farbe = 0, .OptimaleBreite = 0, \
.Zeilenberschriften = 1, .ErsteSpalte = 1, .LetzteZeile = 0, \
.LetzteSpalte = 0
BeginnDokument
Tabelleberschriften
TabelleTabelleMarkieren
BearbeitenKopieren
DateiSchlieen 2
Zeit1 = Jetzt()
Print "Die " + Chr$(34) + LogDateiName$ +  Chr$(34) + \
"-Tabelle steht jetzt in der Zwischenablage, " + \
"Konversionsdauer: " + Str$(Minute(Zeit1 - Zeit0)) + \
" min, " + Str$(Sekunde(Zeit1 - Zeit0)) + "sek"
bye:
ChDefaultDir CurDir$, 0
End Sub
Function logname$(lpathname$)
While Not InStr(lpathname$, Chr$(92)) = 0
lpathname$ = Mid$(lpathname$, InStr(lpathname$, Chr$(92)) + 1)
Wend
logname$ = lpathname$
End Function

Sub FormatVerbindung
AbsatzUnten 1, 1
While Len(AbrufenTextmarke$("\Sel")) > 3
  Abbrechen
  ZeichenLinks
  ZeichenRechts 52
  AbsatzUnten 1, 1
  TrennZeichen = InStr(AbrufenTextmarke$("\Sel"), "|")
  If TrennZeichen = 0 Then
    AbsatzUnten
    ZeichenLinks
    Einfgen Chr$(124)
    ZeichenRechts
  Else
    ZeichenLinks
    ZeichenRechts Trennzeichen
    AbsatzUnten 1, 1
    While Len(AbrufenTextmarke$("\Sel")) > 1
      TrennZeichen = InStr(AbrufenTextmarke$("\Sel"), "|")
      If Trennzeichen > 0 Then
        ZeichenLinks
        TrennZeichen = TrennZeichen - 1
        ZeichenRechts TrennZeichen
        BearbeitenLschen
        Einfgen " "
        AbsatzUnten 1, 1
      Else
        ZeichenRechts
      End If
    Wend
  End If
  AbsatzUnten 1, 1
Wend
End Sub


