Kleine Dateien als PB Quellcode speichern
Verfasst: 28.01.2009 00:07
Hi Leute,
mit diesem Programm kann man kleine Dateien (z.B. Grafiken) als PB Quellcode konvertieren um diese z.B. ins Forum zu stellen.
Gruß Michael
mit diesem Programm kann man kleine Dateien (z.B. Grafiken) als PB Quellcode konvertieren um diese z.B. ins Forum zu stellen.
Gruß Michael
Code: Alles auswählen
;-
;- ProgrammStart
;////////////////////////////////////////////////////////////////
;//
;// Project Title: Image2PBSource
;// File Title: Image2PBSource.pb
;// Created On: 27.1.2009
;// Updated On:
;// Author: Michael Paulwitz
;// OS:Windows
;//
;// Erzeugt aus einer Datei ein PB Quellcode
;//
;////////////////////////////////////////////////////////////////
Procedure OFile(file.s)
d=ReadFile(1, file)
If d
ClearGadgetItems(3)
Restore StringData
Repeat
Read.s Purestring.s
AddGadgetItem(3, -1,Purestring)
Until Purestring.s = "End"
AddGadgetItem(3, -1,"")
AddGadgetItem(3, -1,"DataSection")
AddGadgetItem(3, -1," NameSect:")
AddGadgetItem(3, -1," Data.s "+Chr(34)+file+Chr(34))
AddGadgetItem(3, -1,"")
AddGadgetItem(3, -1," Filehex:" )
While Eof(1)=0
Zaehler + 1
Dump.s + RSet(Hex(ReadCharacter(1)), 2, "0")
If Zaehler = 40
Zaehler = 0
AddGadgetItem(3, -1," Data.s "+Chr(34)+Dump.s+Chr(34))
Dump.s = ""
EndIf
Wend
If Dump.s
AddGadgetItem(3, -1," Data.s "+Chr(34)+Dump.s+Chr(34))
EndIf
AddGadgetItem(3, -1," Data.s "+Chr(34)+"End"+Chr(34))
CloseFile(1)
Else
MessageRequester("Fehler","Datei könnte nicht geöffnet werden.",#MB_ICONERROR)
EndIf
EndProcedure
Procedure SFile(file.s)
d=CreateFile(2, file.s)
If d
WriteString (2,GetGadgetText(3))
CloseFile(2)
Else
MessageRequester("Fehler","Datei konnte nicht geschrieben werden.",#MB_ICONERROR)
EndIf
EndProcedure
If OpenWindow(0, 100, 200, 600, 260, "Image2PBSource Konverter", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
ButtonGadget(1,10,20,80,25,"Öffne Datei")
ButtonGadget(2,100,20,80,25,"Speicher Datei")
EditorGadget(3,10,60,580,185)
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 1
file$ = OpenFileRequester("Öffne Datei","","Alle Dateien|*.*",1)
OFile(file$)
Case 2
file2$ = SaveFileRequester("Speicher Datei","","Alle Dateien|*.*",1)
SFile(file2$)
EndSelect
EndIf
Until Quit = 1
EndIf
End
DataSection
StringData:
Data.s ";// Project Title: CreateFilefromPBSource"
Data.s ";// Author: Michael Paulwitz on Jan 2009"
Data.s ""
Data.s "Procedure.l Hex2Dec(h$)"
Data.s " h$=UCase(h$)"
Data.s " For r=1 To Len(h$)"
Data.s " d<<4 : a$=Mid(h$,r,1)"
Data.s " If Asc(a$)>60"
Data.s " d+Asc(a$)-55"
Data.s " Else"
Data.s " d+Asc(a$)-48"
Data.s " EndIf"
Data.s " Next"
Data.s " ProcedureReturn d"
Data.s "EndProcedure"
Data.s ""
Data.s "Restore NameSect"
Data.s "Read.s File.s"
Data.s ""
Data.s "If CreateFile(0,File.s)"
Data.s " Restore Filehex"
Data.s ""
Data.s " Repeat"
Data.s " Read.s Daten.s"
Data.s " If Daten.s = "+Chr(34)+"End"+Chr(34)+" : Break : EndIf"
Data.s ""
Data.s " For n = 1 To Len(Daten.s) Step 2"
Data.s " WriteByte(0,Hex2Dec(Mid(Daten.s,n,2)))"
Data.s " Next n"
Data.s ""
Data.s " ForEver"
Data.s " CloseFile (0)"
Data.s "Else"
Data.s " MessageRequester("+Chr(34)+"Errormessage"+Chr(34)+", "+Chr(34)+"Error: can't write the file "+Chr(34)+"+File.s, 0)"
Data.s " End"
Data.s "EndIf"
Data.s "End"