Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Lettura indirizzo esadecimale da array
Forum - C/C++ - Lettura indirizzo esadecimale da array

Avatar
fabiobo (Normal User)
Newbie


Messaggi: 3
Iscritto: 08/01/2017

Segnala al moderatore
Postato alle 19:26
Domenica, 08/01/2017
Ciao a tutti,

premetto che non conosco il c++, però mi piace provare.
Sto scrivendo una interfaccia che che legga delle locazioni esadecimali da un file di testo,
in questo formato:

08FBB260
08FBB5C4
08FBB5C0

Con qualche riga di codice leggo il file di testo ed inserisco il tutto in un array.

// lettura file
    int array_size = 1024;
    char *array = new char[array_size];
    int position = 0;

    ifstream fin("c:\\zds\\zds.txt");
    if(fin.is_open()) {

        cout << "File aperto." << endl;

            while(!fin.eof() && position < array_size) {
                fin.get(array[position]);
                position++;
            }

    } else {
        cout << "Il file non può essere aperto." << endl;
        return 0;
    }


Nell' array i caratteri sono tutti separati (a[0]=0 a[1]=8 a[2]=F ...).
Il mio problema è riasseblare la locazione di memoria nel formato (0x08FBB260 0x08FBB5C4 0x08FBB5C0 ...) darla in pasto ad una (DWORD address = 0x08FBB260) in questo formato.

Grazie per un eventuale aiuto.

Fabio

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 22:58
Domenica, 08/01/2017
Per il parsing da string a int per una generica base puoi adoperare la funzione strtol
http://www.cplusplus.com/reference/cstdlib/strtol/
Oppure direttamente la fscanf con parametro x per leggere interpretare i caratteri come numero esadecimale.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:10
Domenica, 08/01/2017
Fabio ... dopo che avrai letto gli indirizzi sai che non saranno indirizzi validi da poter utilizzare in un programma, vero?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
fabiobo (Normal User)
Newbie


Messaggi: 3
Iscritto: 08/01/2017

Segnala al moderatore
Postato alle 23:34
Domenica, 08/01/2017
Grazie Roby94 per la dritta, ci provo.

Gli indirizzi, esempio i tre pubblicati, sono indirizzi statici di un simulatore ferroviario. Cambiamo solo da release a release, ed alcuni dalla loc di guida. Naturalmente il tutto è già testato, in piccolo e manualmente, inviando i valori delle locazioni via seriale ad arduino. In poche parole, sto ricostruendo una cabina di guida reale di una VL80 russa collegata con arduino per la gestione dell'elettronica.

Grazie per eventuali aiuti.

Fabio

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:37
Domenica, 08/01/2017
Per indirizzi di un micro va bene, ma non per queli di un processo win32


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
fabiobo (Normal User)
Newbie


Messaggi: 3
Iscritto: 08/01/2017

Segnala al moderatore
Postato alle 23:48
Domenica, 08/01/2017
Senza dubbio.
Aprendo e richiudendo il simulatore, gli indirizzi rimangono sempre gli stessi. Per il momento sto usando una interfaccia
fatta dai russi, ma purtroppo non è completa e viene aggiornata quando si ricordano. Per questo motivo me ne voglio fare
una mia ad uso esclusivo personale. E comunque è diventata una sfida.

ciao
Fabio

PM Quote