Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Lavorare in HEX su un file

    Non picchiatemi, ma per fare questo non ho proprio idea di che usare per fare questo programmino in VB.NET.
    In VB6 lo so fare ma mi hanno suggerito di aprire un nuovo post.
    Grazie a chi me lo ha suggerito.
    P.S. nn ricordo il suo nick ma aveva l'avatar di Firefox che mangiava IE

    Allora data una seguente form di cui vi allego anche i sorgenti così lavorate direttamente su di esse.
    Ah! Mi sono dimenticato di aggiungere un "pulsante" e il comando "OpenFileDialog", me li aggiungete voi, please.


    La ComboBox davanti alla TextBox1 (quella con la scritta "modello") voglio che se:
    - ha l'item 1 selezionato tutte e 5 le ComboBox davanti alle scritte offset sono utilizzabili e
    - ha l'item 2/3 tutte le combobox eccetto l'ultima sono utilizzabili

    Allora io voglio che se si apre un file lo apra in modalità esadecimale.

    e che se l'item 1 è selezionato dalla combobox in alto.
    Gli offset delle varie ComboBox che modifica sono:
    - Offset(1)= 2D
    - Offset (2)= 2A
    - Offset (3)= 1A
    - Offset (4)= 1B
    - Offset (5)= 1E

    se invece l'item 2 è selezionato gli offset sono:
    - Offset(1)= 2D
    - Offset (2)= 2A
    - Offset (3)= 1A
    - Offset (4)= 1B

    se invece l'item3 è selezionato:
    - Offset(1)= 4A
    - Offset (2)= 2C
    - Offset (3)= 1E
    - Offset (4)= 1F

    I valori che deve scrivere negli offset le prende dalle ComboBox che hanno tutti i seguenti item:
    1 | se selezionato il valore che scrive è 01
    2 | se selezionato il valore che scrive è 02
    3 | se selezionato il valore che scrive è 03
    4 | se selezionato il valore che scrive è 04
    5 | se selezionato il valore che scrive è 05
    6 | se selezionato il valore che scrive è 06
    7 | se selezionato il valore che scrive è 07.

    Gli offset che modifica come abbiamo detto li prende dalle ComboBox vicine alla TextBox con testo Offset (x) [dove x è un numero].

    Spero che io sia stato chiaro

    Ah! mi sono dimenticato il SaveFileDialogo e un pulsante che si occupi di questo.

    Spero che qua ci sia qualcuno che conosca la numerazione esadecimale anche se vista la vostra competenza penso di si

    Il progetto lo scaricate da qua partite da questo per aggiungere il codice, poi mi postate questo ma modificato

    Vi ringrazio della disponibilità e spero che mi possiate aiutare

    saluti flash.tato

    P.S. Ripeto non picchiatemi ho solo accettato un suggerimento: cioè di aprire un nuovo post invece di dimenarmi a scaricare VB6.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Sarà, ma io non ho capito una mazza di ciò che deve fare la tua applicazione di preciso. :master:

    A parte questo, tieni conto che il forum non è un luogo dove si richiede a terzi di fare un tuo programma, ma uno scambio di informazioni volte a risolvere un problema, informazioni pubbliche che siano di utilità anche per altri, quindi ben venga il sorgente che hai reso disponibile ma tutte le modifiche ragionate e i suggerimenti dovranno ovviamente essere pubblici, e non comunicati o trasferiti esclusivamente in forma privata, riducendo la discussione ad un mero punto di incontro tra chi deve fare un programma e lo abbozza e chi lo finisce.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Infatti, io le sorgenti le posso rendere libere.

    Il mio programma nn deve fare altro che lavorare in Esadecimale su un file seguendo le direttive del primo post.

  4. #4
    e anche il ragionamento a cui si è arrivati per il mio programmino naturalmente

  5. #5

    Re: Lavorare in HEX su un file

    Originariamente inviato da flash.tato
    nn ricordo il suo nick ma aveva l'avatar di Firefox che mangiava IE
    Mi stavano ben fischiando le orecchie... :rollo:
    Originariamente inviato da flash.tato
    Allora io voglio che se si apre un file lo apra in modalità esadecimale.
    Questo è facile, basta usare gli stream, il modo di gestire i file (e non solo) del .NET Framework ereditato dal C++ (il miglior linguaggio che ci sia).
    Tra parentesi, non si dice in modalità esadecimale, ma in modalità binaria, in contrapposizione alla modalità di testo, che converte determinati caratteri dallo stream - come il crlf e simili - in altri. La modalità binaria invece restituisce esattamente ciò che c'è nello stream.
    Di seguito inserisco un esempio a tuo uso e consumo:
    codice:
    Imports System.IO
    Public Sub Main()
            'Piccolo esempio dell'utilizzo dei files binari (presuppone un'applicazione console)
            'Variabile temporanea
            Dim tint As Integer
            'Apre il file
            Dim str As New FileStream("c:\test.bin", FileMode.Open, FileAccess.ReadWrite)
            'Si sposta all'offset 0x3D
            str.Seek(&H3D, SeekOrigin.Begin)
            'Legge il byte all'offset corrente e sposta avanti di 1 la posizione di lettura;
            'restituisce -1 se siamo alla fine del file
            tint = str.ReadByte()
            If tint = -1 Then Console.WriteLine("End of file.") : Exit Sub
            'Si sposta di 3 bytes avanti
            str.Seek(3, SeekOrigin.Current)
            'Scrive un byte all'offset corrente
            str.WriteByte(94)
            'Chiude il file
            str.Close()
    End Sub
    Per operazioni più avanzate esistono le classi BinaryReader e BinaryWriter, ma considerando che il tuo programma deve eseguire operazioni abbastanza semplici Seek, ReadByte e WriteByte sono tutto ciò che ti serve.
    Per il resto si tratta semplicemente di sistemare il programma in modo che segua la logica che hai descritto nel tuo primo post, operazione piuttosto semplice che lascio a te.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.