Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Datei wird nicht umgewandelt, woran liegt das ?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
arduno



Anmeldungsdatum: 12.05.2011
Beiträge: 252

BeitragVerfasst am: 22.05.2013, 10:10    Titel: Datei wird nicht umgewandelt, woran liegt das ? Antworten mit Zitat

Hallo, guten Tag.
Ich möchte eine Datei umwandeln. Es funktioniert nicht.
Es wird keine neue Bin-Datei erzeugt.
Ich kann auch nicht raussehen, ob alles richtig gewandelt wird.

Ich brauche hier mal bitte hilfe.

Danke.

Gruss
peter

Code:

#INCLUDE "fbgfx.bi"

Screen 19,32

DIM  Shared As String satz,satz1
Dim Shared As INTEGER f1,f2,z,z1,laenge,scr,scr1
Dim Shared As UByte wert

Declare Sub fth_bin()

f1=FreeFile
f2=FreeFile
scr=0
scr1=0

Do
   Sleep 500
   
   If MULTIKEY(FB.SC_ESCAPE) Then
      End
   ElseIf MultiKey(FB.SC_d) Then
      fth_bin
      Print "fertig..."
   End If
Loop

Sub fth_bin
   OPEN "d:\kc\kc-fth\get_put.fth" FOR INPUT AS #f1
   Open "d:\kc\kc-forth-z80\get_put0.bin" FOR Binary AS #f2
   
   Do
      Input #f1, satz
      If Left(satz,8)="Screen #" Then
         Input #f1,satz
         Input #f1,satz   
            
         satz1=Mid(satz,4)
         laenge=Len(satz1)
         For z=1 To laenge
            wert=Asc(Mid(satz1,z,1))
            Put #f2,,wert,1
         Next
         For z=1 To 32-laenge
            wert=32
            Put #f2,,wert,1
         Next
         
         For z1=1 To 15
            Input #f1,satz
            satz1=Mid(satz,4)
            laenge=Len(satz1)
            For z=1 To laenge
               wert=Asc(Mid(satz1,z,1))
               Put #f2,,wert,1
            Next
            For z=1 To 32-laenge
               wert=32
               Put #f2,,wert,1
            Next
         Next
         
         scr=scr+1
         
         If scr > 4 Then
            scr=0
            scr1=scr1+1
            close #f2
            Sleep 200
            OPEN "d:\kc\kc-forth-z80\get_put"+Str(scr1)+".bin" FOR Binary AS #f2
         EndIf         
      EndIf
   Loop UNTIL EOF(f1)
   
   Close #f1
   Close #f2
   scr=0
   scr1=0
End Sub


Diese Datei soll umgewandelt werden.
Das heisst, es wird abgefragt wann dieses erscheint : "Screen #"
Dann wird 2x mit Input eingelesen bis zur Zeile "00".
Geschrieben wird nur was von 00-15 steht wobei die Zahlen 00-15 rausgeschnitten werden. Dann werden die Bytes mit Put in die neue Datei hintereinander geschrieben. Sind es mehr wie 4 Screens , dann wird eine neue numerierte Bin-Datei angelegt.
Hinter 00 - 15 ist immer erst ein Leerzeichen, welches hier nicht zu erkennen ist.
Zitat:

Screen # 01 -----------------------

00 ( RAM-SAVE ueber Header 5.95)
01
02 ONLY FORTH ALSO ASSEMBLER ALSO
03 I/O DEFINITIONS HEX
04
05 1B CONSTANT ANFA \ Z. anfadr
06 1D CONSTANT ENDA \ Z. endadr
07 23 CONSTANT STA \ Z. stadr
08 200 CONSTANT PRAN \ Prog.anfang
09 320 CONSTANT PRST \ Prog.start
10 \ muss angepasst werden
11 : SAVA ( von bis BLnr ---)
12 1+ 'RAM 1- ENDA !
13 'RAM ANFA !
14 PRST STA ! ;
15 -->

Screen # 02 -----------------------

00 ( RAM-SAVE ueber Header 5.95)
01
02 CODE JUMP
03 F5 C, C5 C, D5 C, E5 C,
04 DD C, E5 C, FD C, E5 C,
05 FD C, 21 C, 4300 , \ C-Eintr.
06 3E C, 00 C,
07 \ pusht Register
08 CD C, FFF1 , \ Sprungadr
09 FD C, E1 C,
10 DD C, E1 C, E1 C, D1 C,
11 C1 C, F1 C, C3 C, 422 ,
12 \ popt Register
13 END-CODE
14
15 -->

Screen # 03 -----------------------

00 ( RAM-SAVE ueber Header 5.95)
01 FFF4 CONSTANT SARUF \ UP-save
02 FFF1 CONSTANT LORUF \ UP-load
03 \ b. 16K 3C00 LOR. 3C03 SAR.
04 : JUAD ['] JUMP + ; \ Anspr
05 : NEW 4E 0F JUAD C! ; \ neudef
06 : OLD 3A 0F JUAD C! ; \ wiederh
07 : FILE 46 0D JUAD C! ; \ F eint
08 : COM 43 0D JUAD C! ; \ C eint
09 : SARUF! SARUF 11 JUAD ! JUMP ;
10 : LORUF! LORUF 11 JUAD ! JUMP ;
11 \ traegt UP ein ueber Sprungver
12 DEFER EXPAN \ vekt Erweiterung
13 : ILL ; ' ILL IS EXPAN
14
15 -->

Screen # 04 -----------------------

00 ( RAM-SAVE ueber Header 5.95)
01 : RAM-LOAD ( ab nscr ---) CR
02 'RAM ANFA ! NEW FILE LORUF!
03 EXPAN EMPTY-BUFFERS ;
04 : RAM-SAVE ( n1 n2 --) CR SAVA
05 NEW FILE EXPAN SARUF! ;
06
07 ALSO FORTH DEFINITIONS
08 : SAVE-SYSTEM ( ---)
09 PRAN ANFA ! HERE ENDA !
10 PRST STA ! NEW COM EXPAN
11 SARUF! ;
12 : MORE OLD JUMP ; \ wiederh.UP
13
14 ' RAM-LOAD IS GET ( n --)
15 ' RAM-SAVE IS PUT ( von bis --)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 22.05.2013, 11:32    Titel: Antworten mit Zitat

Code:
f1=FreeFile
f2=FreeFile


Zitat:
FREEFILE gibt die nächste unbenutzte Dateinummer zurück.

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
arduno



Anmeldungsdatum: 12.05.2011
Beiträge: 252

BeitragVerfasst am: 22.05.2013, 12:08    Titel: Antworten mit Zitat

Hmm.., geht das denn nur einmal ?

Gruss
peter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 22.05.2013, 12:28    Titel: Antworten mit Zitat

Die Reihenfolge ist einfach falsch. So sollte es sein:
Code:
ff1 = FREEFILE
OPEN .. AS #ff1
ff2 = FREEFILE
OPEN .. AS #ff2

_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
arduno



Anmeldungsdatum: 12.05.2011
Beiträge: 252

BeitragVerfasst am: 22.05.2013, 15:08    Titel: Antworten mit Zitat

jup danke.

Gruss
peter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz