Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Bin2Bas advanced (remake)

Uploader:MitgliedAndT
Datum/Zeit:12.07.2007 09:24:49

#define WIN_INCLUDEALL
#include "windows.bi"
function file_openname (Titel as String) as string

    dim ofn as OPENFILENAME
    dim filename as zstring * MAX_PATH+1

    with ofn
        .lStructSize        = sizeof( OPENFILENAME )

        .hInstance          = GetModuleHandle( NULL )
        .lpstrCustomFilter  = NULL
        .nMaxCustFilter     = 0
        .nFilterIndex       = 1
        .lpstrFile          = @filename
        .nMaxFile           = sizeof( filename )
        .lpstrFileTitle     = NULL
        .nMaxFileTitle      = 0
        .lpstrInitialDir    = NULL
        .lpstrTitle         = @Titel
        .Flags              = OFN_EXPLORER or OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST
        .nFileOffset        = 0
        .nFileExtension     = 0
        .lpstrDefExt        = NULL
        .lCustData          = 0
        .lpfnHook           = NULL
        .lpTemplateName     = NULL
    end with

    if( GetOpenFileName( @ofn ) = FALSE ) then
        return ""
    else
        return filename
    end if

end function

function file_savename (Titel as String) as string

    dim ofn as OPENFILENAME
    dim filename as zstring * MAX_PATH+1

    with ofn
        .lStructSize        = sizeof( OPENFILENAME )

        .hInstance          = GetModuleHandle( NULL )
        .lpstrFilter        = strptr( !"Freebasic Headerdatei\0*.bi\0" )
        .lpstrCustomFilter  = NULL
        .nMaxCustFilter     = 0
        .nFilterIndex       = 1
        .lpstrFile          = @filename
        .nMaxFile           = sizeof( filename )
        .lpstrFileTitle     = NULL
        .nMaxFileTitle      = 0
        .lpstrInitialDir    = NULL
        .lpstrTitle         = @Titel
        .Flags              = OFN_EXPLORER or OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST
        .nFileOffset        = 0
        .nFileExtension     = 0
        .lpstrDefExt        = NULL
        .lCustData          = 0
        .lpfnHook           = NULL
        .lpTemplateName     = NULL
    end with

    if( GetSaveFileName( @ofn ) = FALSE ) then
        return ""
    else
        return filename
    end if

end function

sub EinfachesDialog(Ueberschrifft as String,Text as string)

MessageBox( null, Text, Ueberschrifft, MB_ICONINFORMATION  )
end sub

dim as string Eingabe,Ausgabe,Code,TmpEingabe,Arrey,Endung
dim as ubyte ASCCODE
dim as integer Scanner,Checker,filesize

Eingabe=file_openname ("Eine Datei zum Convertieren nach Freebasic angeben...")
Ausgabe=file_savename ("Wohin soll die Datei gespeichert werden?")
If eingabe="" or ausgabe ="" then goto ende
Ausgabe+=".bi"
open Eingabe for binary as #1
Print "Die Bibiolothek befindet sich in:";Ausgabe
open Ausgabe for binary as #2
Print "Analysiere Dateiname..."
Scanner = LEN(Ausgabe)
filesize=LOF(1)
Endung=MID(Eingabe,LEN(Eingabe)-4,4)

DO
    Scanner -=1
    IF MID(Ausgabe,Scanner,1)=CHR(92) THEN exit do
    LOOP
Ausgabe=MID(Ausgabe,Scanner+1,Len(Ausgabe)-Scanner+3)+Endung
   Print "Analysiere Datei..."
   Print "Dateigroesse : ";STR(filesize);" bytes"
   Print "Diese Informationen werden nun verarbeitet und in "+Ausgabe+" geschreiben..."
   Print #2,"Dim shared as ubyte " + Ausgabe + "(1 to "+STR(filesize)+") = { _"
   Print "Die Codierung erfolgt jetzt..."
   DO
   Locate 15,1:Print STR(CHECKER)+" von "+ STR(filesize)
   FOR Scanner=1 to 20
   get #1,,ASCCODE
   Code="&H"
   IF ASCCODE < 16 THEN Code+="0"
   Code +=HEX(ASCCODE)
   Print #2,Code;
    Checker+=1
    IF EOF(1)=-1 then exit for
    If Checker < Filesize Then Print #2,",";
NEXT
IF EOF(1)=-1 then exit do
Print #2," _"
Code=""
loop
Print #2," }"
ende:
close #1
close #2
EinfachesDialog("Info","Das Programm wird jetzt beendet.")