Ich habe ein kleines Programm (130 Zeilen) geschrieben, welches in einem Mustertext nach einem bestimmten Wort sucht und dieses bei jedem Auffinden durch ein Wort aus einer Textdatei ersetzt.
Mein Compiler wurde für 16-Bit-Anwendungen entwickelt und ist unter Windows 10 (32-Bit bzw. 64-Bit) nicht mehr lauffähig.
Wer kann mir das Programm anpassen, so dass es für ein 32- bzw. 64-Bit-Betriebssystem compiliert werden kann (z. B. in FreeBasic). Ich schätze den Arbeitsaufwand auf 1 Stunde. Wie viel würde das kosten (Pauschalpreis)? (Gern hätte ich dann auch den Quellcode um daraus zu lernen).
Nachfolgend mein Quellcode, der leider schon bei dem Deklarieren der Variablen Fehler meldet:
REM Teil 1: HTMmaker32.BAS: läuft ab 32-Bit-Rechner
color 0,7
cls
#Include "dir.bi"
#Include "file.bi"
DECLARE SUB konvertieren()
Dim As String$ gefunden, quelle, quell, htmldatei, dummi, neu, ersatz, a
DIM AS INTEGER taste, x, y
rem Dim As String dateiname$, quelle$, htmldatei$, quell$
rem *******************************
print
print " HTM-Maker - Freeware 1.2"
print " ========================"
print " Prof. h.c. Hans-Jürgen Schulz"
print " Bettelpfad 64, D-55130 Mainz"
print
print " Funktion: Erstellung von HTM-Code aus zwei Dateien."
print " Datei HTM.TXT: der Lückentext wird durch das Wort 'dummy' ersetzt."
print
print " Beispiel:"
print " gewünschter Code: 'Wir behandeln nun das Lernfeld Berufe.'"
print " HTM.TXT: Wir behandeln nun das Lernfeld dummy."
print " xxx.TXT: Berufe"
print
print " Jeder Eintrag dummy steht für eine Zeile in der xxx.TXT-Datei."
print
rem on error goto fehler
rem ******************************************************
rem *** Prüfen, ob Datei HTM.TXT vorhanden ist
If FileExists("HTM.TXT") Then
gefunden="ja"
Else
gefunden="nein"
End if
if gefunden = "nein" then
print " Fehler: Keine Mutterdatei HTM.TXT gefunden."
Beep: Beep: beep
Print "Bitte drücken Sie Return..."
Input taste
Stop
end if
rem *** Prüfen, ob eine Tochterdatei vorhanden ist
If FileExists("*.TXT") Then
gefunden="ja"
Else
gefunden="nein"
End if
if gefunden = "nein" then
print " Fehler: Keine Tochterdatei mit der Endung *.TXT gefunden."
Beep: Beep: beep
Print "Bitte drücken Sie Return..."
Input taste
Stop
end if
rem*** Hier muss die nächste Tochterdatei abgefragt werden
quelle = Dir$("*.TXT")
while (quelle <> "")
quell = quelle
if quell <> "HTM.TXT" then konvertieren(quell)
rem ruft SUBroutine konvertieren auf
quelle = Dir$("")
wend
rem *** Ende ***
print
print "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "
print " Die gewünschten HTM-Dateien wurden von HTM-Maker erstellt "
print " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "
print
print " Sie können nun dieses Fenster schließen"
Beep
Print "Bitte drücken Sie Return..."
Input taste
:
end
:
Public sub konvertieren(quell)
x = len(quell): decr x,4
htmldatei = left$(quell,x)
htmldatei = htmldatei + ".HTM"
open htmldatei for output as #1
open "HTM.TXT" for input as #2
open quell for input as #3
while not(eof(2))
dummi="": neu="": line input#2, dummi
while instr(lcase$(dummi),"dummy") <> 0
y = instr(lcase$(dummi),"dummy")
a$ = left$(dummi,y-1)
if eof(3) then
print
print " ERROR: Mehr dummy-Platzhalter in HTM.TXT, als Datazeilen in ";quell
a$ = a$ + "** KEINE DATAZEILE ***" + mid$(dummi,y+5)
else
line input#3, ersatz
rem *** Bemerkungen hinter // einschließlich werden ignoriert
z = instr(ersatz, "//")
if z <> 0 then
ersatz = left$(ersatz,z-1)
if right$(ersatz,1) = " " then ersatz = left$(ersatz, len(ersatz)-1)
end if
a = a + ersatz + mid$(dummi,y+5)
end if
dummi = a
wend
print #1, dummi
wend
close
end sub
:
fehler:
print erl
if err=61 then print " Die Diskette/Festplatte ist voll"
if err=70 then print " Die Datei wird noch von einem anderen Programm verwendet"
if err=70 then print " oder die Diskette ist schreibgeschützt"
if err=71 then print " Auf die Diskette kann nicht geschrieben werden."
if err=72 then print " Die Diskette ist defekt"
print " Es trat ein Fehler auf. Das Programm wurde beendet. :-("
close
end
Viele Grüße aus Mainz
Hans-Jürgen
Code als Code formatiert, damit dieser vernünftig dargestellt wird
MOD Pierre