Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Lugaid
    Registrato dal
    Jun 2004
    Messaggi
    23

    [VB6] file di testo in un type help

    Salve, ho in un file di testo una stinga di valori separati da spazi, come faccio ad assegnare ad un type questi valori?

    es:
    v1 v2 v3
    v4 v5 v6
    ...

    type
    numero di stringa as integer
    v1 as variant
    v2 as variant
    v3 as variant
    end type

    nn so se sono stato chiaro... grazie.

  2. #2
    I valori hanno tutti la stessa lunghezza?

    Se si, puoi dichiarare una struttura del tipo
    Type rec
    valore1 as string[3]
    filler1 as string[1] 'serve per lo spazio
    valore2 as string[3]
    filler2 as string[1]
    ecc...
    End

    Altrimenti puoi usare la funzione Split per spezzare i dati letti dal file in un Array e poi da lì gestirli come vuoi.

    Se hai bisogno di esempi più precisi prova a spiegare meglio cosa vuoi ottenere.

    Ciao
    lupusinfabula

    Programmatore VB, ASP, Delphi.

  3. #3
    boh, prova a leggerti dei manualetti che si trovano on-line!



  4. #4
    Utente di HTML.it L'avatar di Lugaid
    Registrato dal
    Jun 2004
    Messaggi
    23
    si sono tutti della solita lunghezza... ho provato con il filler, solo che adesso sorge un altro problema, ovvero come fargli leggere i vari dati con input senza andare a capo nella flex ogni volta? grazie...

  5. #5
    Prova a postare il codice di riempimento della flex.

    Ciao
    lupusinfabula

    Programmatore VB, ASP, Delphi.

  6. #6
    Utente di HTML.it L'avatar di Lugaid
    Registrato dal
    Jun 2004
    Messaggi
    23
    hai ragione sn stato parecchio confusionario



    If x.id >= 17 Then

    r = 1
    c = 0

    Input #fn, x.data
    flex.Row = r
    flex.Col = c
    flex.Text = x.data

    End If

    r = 1
    c = 1

    Do While Not EOF(fn)
    Input #fn, x.data
    x.id = x.id + 1

    If x.id >= 17 Then
    flex.Row = r
    flex.Col = c
    flex.Text = x.valori
    c = c + 1
    If c = 4 Then
    c = 1
    r = r + 1
    End If
    End If
    Loop


    Public Type giorno
    id As Integer
    data As Variant
    filler1 As String * 4
    valori As Variant
    filler2 As String * 4
    End Type

    Public x As giorno


    allora dovrebbe prendere cosa ce nella riga 17 e lo mette in r(1) c(0). Dopo lavora sovrascrivendo sempre sul solito campo del type valori, e in teoria dovrebbe scriverne il contenuto in r(1) c(1), poi c 2, 3, 4.. a questo punto torna alla colonna 1 e va alla riga successiva... solo che nn fa cosi

  7. #7

    [VB6] info programma

    Scusate se stamani sto riempendo il forum di post miei.... Sono disperato, devo assolutamente fare un programma abbastanza semplice ma incasinato..... C'è qualcuno disposto a visionare il mio materiale da mandare in mail e darmi delle dritte su come lavorare??? Non so più dove picchiare la testa!!! Grazie, Mirko!

  8. #8
    Se non ho capito male ci sono diverse cosette da sistemare:

    1) tutto il record viene letto in un'unica variabile di tipo Variant (x.Data), poichè l'istruzione Input #fn, x.Data indica l'inserimento di quanto è stato letto in x.Data.

    2) il ciclo non è del tutto preciso.

    Io comincerei a correggere la struttura del record rendendola identica ai dati presenti nel file (per esempio, da quello che ho capito nel record non esiste un campo id, ma lo gestisci tu nel programma).
    Es: Considero un file composto così:
    v1 v2 v3
    v4 v5 v6
    .. .. ..
    .. .. ..

    codice:
    Type giorno
      dato1 As String * 2
      filler1 As String * 1 
      dato2 As String * 2
      filler2 As String * 1 
      dato3 As String * 2
      filler3 As String * 1 
    End Type
    Attenzione: la dimensione delle variabili della struttura del record DEVE essere uguale a quella dei dati nel file (altrimenti VB legge i dati in modo errato).

    Poi, con un ciclo leggi i record del file e inserisci i valori nella Flex:

    codice:
    'Dichiaro la variabile di appoggio per la struttura del record
    Dim x as Giorno
    
    
    'Apro il file
    Open "pippo.dat" For Input As #fn 'o qualcosa di simile...
    
    id = 0
    r = 0
    Do While Not EOF(fn) 
       Input #fn, x 
       id = id + 1 
    
       If id >= 17 Then 
          flex.Row = r 
          flex.Col = 0 
          flex.Text = x.dato1
          flex.Col = 1
          flex.Text = x.dato2
          flex.Col = 2 
          flex.Text = x.dato3
       End If 
       r = r + 1
    Loop

    Spero di aver capito bene il tuo problema e di averti aiutato con questo esempio.

    Ciao
    lupusinfabula

    Programmatore VB, ASP, Delphi.

  9. #9
    Inviami pure via mail il materiale, vedo cosa posso fare.

    Ciao
    lupusinfabula

    Programmatore VB, ASP, Delphi.

  10. #10
    Utente di HTML.it L'avatar di Lugaid
    Registrato dal
    Jun 2004
    Messaggi
    23
    adesso riguardo tutto... per adesso grazie 1000 ^^

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.