[PROGRAMMA] I.Ren New EBook format reader, prog cool! ho creato 1 nuovo tipo di ebook!

« Older   Newer »
  Share  
I.Ren
CAT_IMG Posted on 26/3/2008, 17:36     +1   -1




Ecco qui il mio ultimo programma... Si tratta di 1 programma che ti legge i file .nbf . Mai sentiti i file nbf? beh sono il nuovo tipo di ebook creato da me! la sigla nbf significa n-new b-book f- file (nuovo file di libro).

Il programma contiente il metodo di lettura, e anke l'editor per crearli.. come creare i file nbf è spiegato dentro il prog.

Allego, insieme all'exe anke 2 esempi. se avete il compilatore di autoit, copiateli e incollateli nell'idle dell'editor, salvateli, e poi provaleli cn il prog.

ESEMPIO # 1

CODICE
- ESEMPIO # 1 -

Vai avanti con la pagina, per vedere le informazioni di questa sintesi..

[para]Il Signore degli inganni è tornato dal passato, minacciando la pace della gente di Valle d’Ombra. E il saggio Allanon accorre da lontano per svelare a Shea la nobiltà  delle sue origini e i misteri della magia. Perché solo Shea potrà  conquistare la mitica spada di Shannara, il talismano capace di sconfiggere il Male e di restituire agli uomini la libertà , la concordia e la verità . L’eterna guerra tra il Bene e il Male si rinnova in questa avvincente storia ambientata nelle incantate Terre del Nord, dove si avverano i sogni e le leggende. Il romanzo che inaugura la più spettacolare saga “fantasy” degli ultimi anni.
{nuovapagina}
Titolo:

[para] La Spada di Shannara

Autore:

[para]Terry Brooks

Editore:

[para] Mondadori

Anno di pubblicazione:
[para]2000

Pagine:

[para]612


ESEMPIO # 2

CODICE
- Esempio # 2 -

[Para] Scritta con paragrafo

Scritta senza paragrafo

P.S.: girate alla prossima pagina!

{nuovapagina}

Pagina 2

P.S.: girate alla prossima pagina!

{nuovapagina}

ESEMPIO # 2:
[Para]Finito!




CODICE PROG

CODICE
#NoTrayIcon
#include <GUIConstants.au3>
Global $npagine, $pagtemp, $pag, $szinfos, $i, $nSize, $nuovapagina
Global $nCmdEnabled = False, $msgbox
Global $white = 0xFFFFFF
Local $o_speech = ObjCreate("SAPI.SpVoice")
$gui = GUICreate("I.Ren New Ebook format reader v0.2", 493, 574, 193, 115)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 489, 513, BitOR($ES_WANTRETURN, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY))
GUICtrlSetFont(-1,9.5,Default,1,'arial')
GUICtrlSetBkColor($Edit1, $white)
$hMenu = GUICtrlCreateMenu("New Ebook format")
$hMenu2 = GUICtrlCreateMenu(" Other")
$hMenu3 = GUICtrlCreateMenu(" Nbf file editor and creator")
$hApriEditor = GUICtrlCreateMenuItem("Open nbf file editor and creator",$hMenu3)
$hleggi = GUICtrlCreateMenuItem("Speak text",$hMenu2)
GUICtrlCreateMenuItem('',$hMenu2)
$hAbout = GUICtrlCreateMenuItem("About",$hMenu2)
$hapri = GUICtrlCreateMenuItem("Open New EBook format", $hMenu)
GUICtrlCreateMenuItem('',$hMenu)
$hinfo = GUICtrlCreateMenuItem("Pages Info", $hMenu)
GUICtrlCreateMenuItem('',$hMenu)
$hExit = GUICtrlCreateMenuItem("Exit", $hMenu)
$hPrev = GUICtrlCreateButton("Previous Page", 89, 528, 77, 17, 0)
$succ = GUICtrlCreateButton("Next Page", 344, 528, 73, 17, 0)
$Input1 = GUICtrlCreateInput("", 216, 528, 49, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState(@SW_SHOW)
If $cmdline[0] Then
   $pag = carica($cmdline[1], "{nuovapagina}")
   $nuovapagina = StringReplace($pag[1], "[para]", @CRLF '  ')
   GUICtrlSetData($Edit1, $nuovapagina)
   $npagine = 1
   GUICtrlSetData($Input1, $npagine & "\" & $pag[0])
EndIf

While 1
   Switch GUIGetMsg()
       Case $hApriEditor
   Call('Editor')
       Case $habout
               MsgBox(0x40,'About','Program created whit autoit v.3., by I.Ren'&@cr&'This program read EBooks (*.nbf). For create *.nbf file use the editor, in this program')
       Case $GUI_EVENT_CLOSE
           Exit
               Case $hleggi
               _Talk($o_speech, GUICtrlRead($edit1))
       Case $hapri
                       _carica()
               Case $hPrev
           If IsArray($pag) Then
                   If $npagine = 1 Then
                       MsgBox(0x10, "Error", "Reached the first page. Cannot go back")
                   Else
                       $nuovapagina = StringReplace($pag[$npagine - 1], "[para]", @CRLF & '  ')
                       GUICtrlSetData($Edit1, $nuovapagina)
                       $npagine = $npagine - 1
                       GUICtrlSetData($Input1, $npagine & "\" & $pag[0])
                   EndIf
           Else
               MsgBox(0x10, "Error", "Any EBook loaded!")
           EndIf
               Case $succ
           If IsArray($pag) Then
               If $npagine < $pag[0] Then
                   $nuovapagina = StringReplace($pag[$npagine + 1], "[para]", @CRLF & '  ')
                   GUICtrlSetData($Edit1, $nuovapagina)
                   $npagine = $npagine + 1
                   GUICtrlSetData($Input1, $npagine & "\" & $pag[0])
               Else
                   MsgBox(0x40, "End of Book", "You have reached the end of your New EBook format")
               EndIf
           Else
               MsgBox(0x10, "Error", "Any EBook loaded!")
           EndIf
               Case $hexit
                       Exit
       Case $hinfo
           If IsArray($pag) Then
               For $i = 1 To $pag[0]
                   $nSize += StringLen($pag[$i])
               Next
               MsgBox(0x40, "Book Info", "# Of Pages:" & $pag[0] & @CRLF & "# of letters:" & $nSize)
           Else
               MsgBox(0x10, "Error", "No New EBook format is loaded. No informaton to give")
           EndIf
       Case Else
           Sleep(20)
   EndSwitch
WEnd

Func carica($sPath, $snuovpaginaDilemeter)
   Local $fData, $split
   If Not FileExists($sPath) Then
       Return -1
   EndIf
   $fData = FileRead($sPath)
   $split = StringSplit($fData,$snuovpaginaDilemeter, 1)
   If Not IsArray($split) Then
       Return -1
   EndIf
   Return $split
EndFunc   ;==>carica

Func _carica()
$pagtemp = GUICtrlRead($Edit1)
           $fapri = FileOpenDialog("Open New EBook format", @DesktopDir, "New EBook format (*.nbf)")
           If @error Then
                       MsgBox(0x10, "Error", "Error opening file")
                       GUICtrlSetData($Edit1, $pagtemp)
               EndIf
               $pag = carica($fapri, "{nuovapagina}")
               $nuovapagina = StringReplace($pag[1], "[para]", @CRLF & '  ')
               GUICtrlSetData($Edit1, $nuovapagina)
               $npagine = 1
               GUICtrlSetData($Input1, $npagine & "\" & $pag[0])
EndFunc
               
Func _Talk(ByRef $o_speech, $s_text, $s_voice = 3)
   Local Const $SVSFlagsAsync = 1
   Select
       Case $s_voice == 1
           $o_speech.Voice = $o_speech.GetVoices ("Name=Microsoft Mary", "Language=409").Item (0)
       Case $s_voice == 2
           $o_speech.Voice = $o_speech.GetVoices ("Name=Microsoft Mike", "Language=409").Item (0)
       Case $s_voice == 3
           $o_speech.Voice = $o_speech.GetVoices ("Name=Microsoft Sam", "Language=409").Item (0)
   EndSelect
   $o_speech.Speak ($s_text, $SVSFlagsAsync)
EndFunc   ;==>_Talk

Func editor()
$gui2 = GUICreate('Nbf file creator and editor',300,500)
$hMenu4 = GUICtrlCreateMenu("Nbf file")
$hSalva = GUICtrlCreateMenuItem("Salva",$hMenu4)
$hApri2 = GUICtrlCreateMenuItem("Open",$hMenu4)
$hElimina = GUICtrlCreateMenuItem("Delete NBF file",$hMenu4)
$hMenu5 = GUICtrlCreateMenu("How to")
$HcmCreare=GUICtrlCreateMenuItem(".. create NBF file",$hMenu5)
GUICtrlCreateMenuItem('',$hMenu4)
$hCiao = GUICtrlCreateMenuItem("Exit",$hMenu4)
$AggPara = GUICtrlCreateButton('Add paragraph',2,2,80,20)
$AggPag = GUICtrlCreateButton('Add page',90,2,80,20)
$Edit2 = GUICtrlCreateEdit('',0,30,300,400,BitOR($ES_WANTRETURN, $WS_VSCROLL, $ES_AUTOVSCROLL))
GUICtrlSetFont(-1,9.5,Default,1,'arial')

GUISetState( )

While 1
       Switch GUIGetMsg()
       Case $hCmCreare
MsgBox(0,'How to..',' - Sorry this minguide is write in italian... wait the next version for the english version..'&@CR& 'Scrivete il vostro testo normalmente in questo editor, e se volete mettere dei paragrafi, scrivete [para] oppure premete il comodo pulsante xD' &@CR& 'Se volete aggiungere una pagina al vostro EBook, scrivete {nuovapagina} oppure premete anche qui il pulsante')

       Case $hElimina
$daEliminare = FileOpenDialog('Select NBF file to Delete',@desktopdir,'New EBook format (*.nbf)')
If @error Then
       ;;;
Else
       FileDelete($daEliminare)
EndIf
       Case $hSalva
$dove = FileSaveDialog('Save your NBF file',@desktopdir,'New EBook format (*.nbf)')
If @error Then
       MsgBox(0x10,'Error!','Any file created!')
Else
       FileWrite($dove & '.nbf',GUICtrlRead($edit2))
EndIf
       Case $hApri2
If GUICtrlRead($edit2) <> '' Then
       $file = FileOpenDialog('Open nfb file',@desktopdir,'New EBook format (*.nbf)')
If @error Then
       ;;;
Else
       GUICtrlSetData($Edit2,'')
       GUICtrlSetData($Edit2,FileRead($file))
EndIf
Else
       $a = MsgBox(36,'Are you sure?','Are your sure to load file?')
       If $a = 6 Then
               $file = FileOpenDialog('Open nfb file',@desktopdir,'New EBook format (*.nbf)')
If @error Then
       ;;;
Else
       GUICtrlSetData($Edit2,'')
       GUICtrlSetData($Edit2,FileRead($file))
EndIf
       EndIf
       If $a = 7 Then
               ;;;
       EndIf
EndIf
       Case $AggPag
GUICtrlSetData($Edit2,GUICtrlRead($edit2) & "{nuovapagina}")
       Case $AggPara
GUICtrlSetData($Edit2,GUICtrlRead($edit2) & "[Para]")
       Case $hCiao
       GUIDelete($gui2)
       ExitLoop
       Case $GUI_EVENT_CLOSE
       GUIDelete($gui2)
       ExitLoop
EndSwitch
WEnd
EndFunc


L'exe è qui sotto; ditemi che ne pensate!

Download attachment
I.Ren_nbf_file_reader_v.02.zip ( Number of downloads: 8 )

 
Top
lknokl
CAT_IMG Posted on 27/3/2008, 13:26     +1   -1




Grandissimo ^^ ora ti cimenti anke coi nuovi formati...spero che abbia successo ;) fallo girare un po
 
Top
1 replies since 26/3/2008, 17:36   108 views
  Share