|
'Mettere questa dichiarazione in generale
Private FileIn as Sting '------------------------------------------- Private Sub Command1_Click() List1.Clear List1.FontName = "Courier new" List1.FontSize = 8 List1.Height = Form1.ScaleHeight - List1.Top Dim numFile As Integer On Error Resume Next CommonDialog1.ShowOpen If Err Then Exit Sub numFile = FreeFile Open CommonDialog1.filename For Binary As #numFile FileIn = Space(LOF(numFile)) Get #numFile, , FileIn Close #numFile ' inzia la conversione Dim controllo As Long controllo = Hex(Len(FileIn)) ' lungezza massima dell'espressione che indica ' l'avanzamento dei Bytes For i = 1 To Len(FileIn) c = c + 1 car = Mid(FileIn, i, 1) hx = Hex(Asc(car)) If Len(hx) = 1 Then hx = "0" & hx riga = riga & hx & " " carW = car If Val(Asc(car)) < 32 Then carW = Chr(1) ' sostitusce i caratteri non stampabili con il carattere "" setCar = setCar & carW ' accoda i caratteri ascii If c = 10 Or i = Len(FileIn) Then ' Or i=.. prevede che la lunghezza in Bytes del file aperto ' non sia esattamente un multiplo di 10 diff = Len(controllo) - Len(Hex(i)) If i < 11 Then diff = Len(controllo) For equo = 1 To diff Bytestr = Bytestr & "0" Next equo ' numera le righe in base ai Bytes gia' letti espressi in esadecimale If i > 10 Then Bytestr = Bytestr & Hex(i) n = 4 If c < 10 Then n = 34 - Len(riga) ' il valore 34 e' condizionale solo ' alle misure del form e del listbox riga = Bytestr & Space(6) & riga & Space(n) & setCar setCar = "" Bytestr = "" List1.AddItem riga riga = "" c = 0 End If hx = 0 Next i End Sub 'L'operazione potrebbe essere lenta con grossi file perche' 'il codice non e' ottimizzato. |