Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di maz85
    Registrato dal
    Mar 2003
    Messaggi
    75

    Scrivere in byte

    Dovrei scrivere su un file relativo un campo che deve contenere questo dato qui: "0D0A"
    il campo è alfanumerico e lungo 2 byte. Come faccio a farci stare questa roba qui sopra in 2 byte???

  2. #2

    Re: Scrivere in byte

    Originariamente inviato da maz85
    Dovrei scrivere su un file relativo un campo che deve contenere questo dato qui: "0D0A"
    il campo è alfanumerico e lungo 2 byte. Come faccio a farci stare questa roba qui sopra in 2 byte???
    Non è chiarissimo...
    Comunque "0D0A" (zero D zero A) sono 2 byte, non 4. "0D0A" corrisponde alla sua codifica esadecimale. In VB6 si può scrivere come "Chr(13) & Chr(10)", oppure con la costante "VbCrLf"

  3. #3
    azz... chiedo scusa, non ho visto che manca il linguaggio...

  4. #4
    Utente di HTML.it L'avatar di maz85
    Registrato dal
    Mar 2003
    Messaggi
    75
    Grazie ci avevo pensato ma mi serviva una buona conferma.

    Grazie.

    Ah, senti siccome questo file relativo con record a lunghezza fissa deve essere interpretato da un programma non mio e deve leggere l'ultimo campo in cui c'è appunto 0D0A c'è un modo per scriverlo in 2 posti? Se lo scrivo con vbCrlf o con l'ascii non penso vada bene...

  5. #5
    Originariamente inviato da maz85
    Ah, senti siccome questo file relativo con record a lunghezza fissa deve essere interpretato da un programma non mio e deve leggere l'ultimo campo in cui c'è appunto 0D0A c'è un modo per scriverlo in 2 posti? Se lo scrivo con vbCrlf o con l'ascii non penso vada bene...
    non capisco...

  6. #6
    Utente di HTML.it L'avatar di maz85
    Registrato dal
    Mar 2003
    Messaggi
    75
    Praticamente devo scrivere su un file relativo certe informazioni e il tracciato record per ragioni a me sconosciute ha come ultimo campo un valore fisso 0D0A appunto. Siccome la lunghezza del record è 102 io ho usato variabili stringa con lunghezza dichiarata (*n) essendo tutti campi con testo. L'ultimo però deve essere lungo 2 byte corrispondenti quindi a 2 lettere e ci devo far stare 0d0a, quindi cerco un modo per farcelo stare.

    Potrei per esempio dichiarare quest ultimo campo come byte di lunghezza 2 e inserirlo.

    codice:
    dim ultimocampo as byte(2)
    codice:
    ultimocampo=0D0A   'poi scrivi

  7. #7
    0d0a è il "fine record" ed è quella combinazioni di caratteri che fa andare il testo a capo.
    Scrivendo un testo ogni volta che premi il tasto "b", invii al pc il carattere "b" (o in esadecimale 62). Ogni volta che premi il tasto Invio, invii al pc la sequenza di caratteri che equivale a "A capo" (o in esadecimale 0d0a).
    Lo 0d0a fa parte del record, quindi quando fai riferimento alla lunghezza di un record (quando parli di un file a colonne) devi anche tener conto di questi 2 byte. Dovrai quindi dichiarare un campo di 2 caratteri esattamente come fai con tutti gli altri campi...
    codice:
    Type Record
      ...
      Anagrafica As String * 30
      Indirizzo As String * 50
      ...
      UltimoCampo As String * 2
    End Type
    
    ...
    
    Dim R As Record
    R.Anagrafica = "Pippo"
    R.Indirizzo = "Via xxxx"
    R.UltimoCampo = VbCrLf '<-- 0d0a
    Visto che "UltimoCampo" non cambia mai puoi valorizzarlo una volta sola all'avvio del programma

  8. #8
    Originariamente inviato da maz85
    Praticamente devo scrivere su un file relativo certe informazioni e il tracciato record per ragioni a me sconosciute ha come ultimo campo un valore fisso 0D0A appunto. Siccome la lunghezza del record è 102 io ho usato variabili stringa con lunghezza dichiarata (*n) essendo tutti campi con testo. L'ultimo però deve essere lungo 2 byte corrispondenti quindi a 2 lettere e ci devo far stare 0d0a, quindi cerco un modo per farcelo stare.

    Potrei per esempio dichiarare quest ultimo campo come byte di lunghezza 2 e inserirlo.

    codice:
    dim ultimocampo as byte(2)
    codice:
    ultimocampo=0D0A   'poi scrivi
    E fidati....!

    Se tutti ti dicono che vbCrLf o vbNewLine e' di due caratteri, e sei proprio diffiidente, prova a fare: Debug.Print Len(vbNewLine)
    cosi' verifichi !

    Quindi scrivi:
    codice:
    ultimocampo = vbNewLine
    Poi cosa servira' un ritorno a capo in un record a lunghezza fissa...?? Boh !
    File random, ad accesso casuale, questo intendi con "file relativo", no ?


    Ciao !
    IceCube_HT (VB6 fan Club)

  9. #9
    ...
    IceCube_HT (VB6 fan Club)

  10. #10
    Originariamente inviato da icecube_HT
    cosa servira' un ritorno a capo in un record a lunghezza fissa...?? Boh !
    Non serve dal punto di vista funzionale, ma è indispensabile per poter lavorare e visualizzare il file con un editor di testo

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.