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

« Older   Newer »
  Share  
I.Ren
CAT_IMG Posted on 27/3/2008, 18:15     +1   -1




Ecco la nuova versione del mio precedente programma, un lettore che legge un formato ebook creato da me. (la prima versione qui)

Aggiunte:

<1> Aggiunte le opzioni
<2> Aggiunta la possibilitą di ingrandire a tutto schermo il programma.
<3> Aggiunto nel formato NBF un libro

Codice qui:

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")
If Not IsDeclared('WS_CLIPSIBLINGS') Then Global $WS_CLIPSIBLINGS = 0x04000000
$gui = GUICreate("I.Ren New Ebook format reader v0.3", 493, 574, 193, 115,$WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 489, 513, BitOR($ES_WANTRETURN, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY))
If FileExists('opzioni.ini') Then
       If IniRead('opzioni.ini','zoom','zoom','') = '50%' Then GUICtrlSetFont(-1,9.5,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '60%' Then GUICtrlSetFont(-1,10,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '70%' Then GUICtrlSetFont(-1,11,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '80%' Then GUICtrlSetFont(-1,12,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '90%' Then GUICtrlSetFont(-1,13,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '100%' Then GUICtrlSetFont(-1,14,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '110%' Then GUICtrlSetFont(-1,15,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '120%' Then GUICtrlSetFont(-1,16,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '130%' Then GUICtrlSetFont(-1,17,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '140%' Then GUICtrlSetFont(-1,18,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '150%' Then GUICtrlSetFont(-1,19,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '160%' Then GUICtrlSetFont(-1,20,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '170%' Then GUICtrlSetFont(-1,21,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '180%' Then GUICtrlSetFont(-1,22,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '190%' Then GUICtrlSetFont(-1,23,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '200%' Then GUICtrlSetFont(-1,24,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '210%' Then GUICtrlSetFont(-1,25,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '220%' Then GUICtrlSetFont(-1,26,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '230%' Then GUICtrlSetFont(-1,27,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '240%' Then GUICtrlSetFont(-1,28,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '250%' Then GUICtrlSetFont(-1,29,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '260%' Then GUICtrlSetFont(-1,30,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '270%' Then GUICtrlSetFont(-1,31,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '280%' Then GUICtrlSetFont(-1,32,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '290%' Then GUICtrlSetFont(-1,33,Default,1,'arial')
       If IniRead('opzioni.ini','zoom','zoom','') = '300%' Then GUICtrlSetFont(-1,34,Default,1,'arial')
Else
GUICtrlSetFont(-1,9.5,Default,1,'arial')
EndIf
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)
$hOpzioni = GUICtrlCreateMenuItem("Setting",$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 $hOpzioni
          Call('Opzioni')
      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

Func opzioni()
$gui3 = GUICreate('Options',250,60)
GUICtrlCreateLabel('Zoom:',2,5)
GUICtrlSetFont(-1,8,5000,1,'arial')
If FileExists('opzioni.ini') Then
$zoom = GUICtrlCreateCombo(IniRead(@ScriptDir&'\opzioni.ini','zoom','zoom',''),40,2,200,20)
GUICtrlSetData(-1,'60%|70%|80%|90%|100%|110%|120%|130%|140%|140%|150%|160%|170%|180%|190%|200%|210%|220%|230%|240%|250%|260%|270%|280%|290%|230%')
Else
$zoom = GUICtrlCreateCombo('50%',40,2,200,20)
GUICtrlSetData(-1,'60%|70%|80%|90%|100%|110%|120%|130%|140%|140%|150%|160%|170%|180%|190%|200%|210%|220%|230%|240%|250%|260%|270%|280%|290%|230%')
EndIf
$applica = GUICtrlCreateButton('Apply and exit',2,30,240,20)
GUISetState( )

While 1
       Switch GUIGetMsg()
       Case $applica
       IniWrite('opzioni.ini','zoom','zoom',guictrlread($zoom))
       Exit
       Case $GUI_EVENT_CLOSE
       GUIDelete($gui3)
       ExitLoop
EndSwitch
WEnd
EndFunc


L'exe qui sotto, ditemi che ne pensate.

Download attachment
I.Ren_reader_nbf_file_reader_v.03.zip ( Number of downloads: 11 )

 
Top
lknokl
CAT_IMG Posted on 28/3/2008, 22:34     +1   -1




mi da qualke errorino :P

x:\xxxxx\xxxxxx\xxxxx\xxxxx\lknokl Panel.au3(7,79) : ERROR: $WS_CLIPSIBLINGS previously declared as a 'Const'
If Not IsDeclared('WS_CLIPSIBLINGS') Then Global $WS_CLIPSIBLINGS = 0x04000000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Utente jolly\Desktop\Script\lknokl Panel.au3(61,61) : ERROR: syntax error
$nuovapagina = StringReplace($pag[1], "[para]", @CRLF ' '
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
x:\xxxxxxx\xxxxxxx\xxxxxxx\xxxxxxxx\lknokl Panel.au3 - 2 error(s), 0 warning(s)

ho provato a correggerlo ma questo codice e troppo complicato x me modesto programmatore xD
 
Top
I.Ren
CAT_IMG Posted on 29/3/2008, 10:19     +1   -1




a me nn da nessun errore.... cmq č logico che č + hard correggere 1 codice fatto da un'altro piuttosto che uno fatto da se...
 
Top
lknokl
CAT_IMG Posted on 29/3/2008, 13:50     +1   -1




puo darsi ke č il mio pc ke e in vena di stupidate (anzi lo e di sicuro......manca poco alla formattazione xD)
 
Top
I.Ren
CAT_IMG Posted on 29/3/2008, 16:40     +1   -1




ok
 
Top
4 replies since 27/3/2008, 18:15   138 views
  Share