Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [DELPHI] Rimpiazzare il contenuto di un offset

    Buongiorno a todos!!!
    Ho bisogno del vostro aiuto ancora una volta
    Avrei bisogno di sapere come rimpiazzare il contenuto di un offset in un file con un altro.
    Me spiego.
    Nel file pincopallino.exe vorrei sostituire all'offset 12345A(e' l'indirizzo di una coppia esadecimale) il valore esadecimale 12 con 34.
    Ho provato a cercare su google e sul forum ma, o sono def*ciente , o non uso le chiavi di ricerca adatte.

    azzie mille

  2. #2
    Per spostarti all'interno di un file puoi usare il metodo Seek della classe TFileStream oppure la funzione Seek. Ovviamente esistono anche altri metodi!

  3. #3
    grazie!
    ma per il resto?
    so soltanto che per i file binary si usa var bin : File!
    una volta arrivato all'offset con Seek come rimpiazzo i dati?

    grazzie mille

    aggiunta: ah! e soprattutto usando valori esadecimali

  4. #4
    so soltanto che per i file binary si usa var bin : File!
    Allora dovresti studiare un po' la gestione dei file in Delphi. Potresti usare i metodi della classe TFileStream documentati nell'help online e nelle varie guide.

  5. #5
    aggiunta: ah! e soprattutto usando valori esadecimali
    Nella unit SysUtils trovi la funzione IntToHex, potrebbero servirti anche le funzioni Ord e Chr.

  6. #6
    ma usando la procedura Seek come si salta ad un'offset tipo 10EAE1?
    mi da errore x le lettere!

  7. #7
    Il numero č espresso in notazione esadecimale, la funzione seek richiede un valore decimale.

    Delphi consente di utilizzare direttamente numeri in formato esadecimale, la sintassi da adottare č banale ed č descritta in TUTTI i libri dedicati al linguaggio (Object) Pascal.

    Secondo me ti mancano le basi ed ha poco senso cercare di ottenere qualcosa mettendo pezze qua e lā...

  8. #8
    soltanto perche' non so scrivere un numero esadecimale in delphi non significa che non ho le basi...
    e nemmeno mi hai risposto!

  9. #9
    Non sai gestire i file in Delphi (č un argomento di base) e non hai idea di come si ESPRIMA un numero esadecimale, evidentemente ti mancano le basi dell'Object Pascal.

    Io ti rispondo, ma ribadisco che č inutile, se non dannoso, procedere "a tentoni"... Si impara poco&male e si rischia di scrivere codice poco robusto.

    Metti un bel $ davanti al tuo numero esadecimale.

    Esempio: $F1CA

  10. #10
    grazie

    a := 'W LA ';
    b := InputBox('Inserisci la parola magica...', '', '');
    if not (b='figa') then
    Missile.LaunchToTarget('MICROSOFT') else
    Application.MessageBox(a+b, 'Complimenti, hai salvato la Microsoft!', MB_OK+MB_ICONINFORMATION);

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 © 2024 vBulletin Solutions, Inc. All rights reserved.