Problem beim Umschreiben eines Tools von PowerBasic auf FreeBasic

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 :slight_smile:

Code als Code formatiert, damit dieser vernünftig dargestellt wird
MOD Pierre

ähm… das hatten wir doch hier:

und hier

1 Like

richtig Fronk, aber bei Trashmail hat jemand meinen Code gelöscht, so dass ich es hier noch einmal eingestellt habe.

hm… und dann musst Du dafür extra ein neues Thema beginnen? Warum stellst Du das dann nicht bei einem der o. a. Tehmen als Antwort ein?

Brauchst mir hier jetzt nicht zu antworten … das war ehe eine rethorische Frage und ich bin sowieso raus.

1 Like

1h für eine Anpassung von sowas hier? quell = quelle Ich versteh noch nicht mal, was das hier machen soll. Allein zum Erwerb des Verständnisses würde ich mehr als 1h ansetzen. Die ganze Zeit, die ich bisher in die verschiedenen Artikel gesteckt habe beläuft sich auch schon auf 30min. Deine Stunde kannst du locker vergessen. Zumal deine Schätzung auf nichts basiert, weil du keine Vorstellung davon zu haben scheinst, was hier falsch sein könnte.

Kopier dir das doch mal in den Makroeditor von Office. Vielleicht tut es da.

Aber warum schreibst du das nicht einfach komplett neu in einer moderneren Programmiersprache? Zeitaufwand schätze ich auf 1h - auf der gleichen Basis wie deine Schätzung oben.

1 Like

Wenn du das selber geschrieben hast, kannst du das auch selber neu schreiben. Fehlermeldungen helfen dabei.

Basic Compiler gibt es haufenweise. Such dir einen aus:
https://www.ecosia.org/search?q=basic%20compiler%20windows%2010