Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    58

    URGENTE!!!!!File con VB6

    Il problema è questo:

    devo leggere un file di un solo record molto grosso.
    Devo leggere 54 caratteri alla volta in un ciclo. ogni volta che ho il contatore dispari memorizzo quello che ho letto in un file e ne leggo altri 10, mentre quando è pari li memorizzo in un'altro file.Il codice è il seguente:

    Private Type Record
    Desc As String * 10
    Desc2 As String * 54
    Desc3 As String * 54

    End Type


    Private Sub Command1_Click()


    Dim MyRecord As Record

    Open "c:\tarifeu.txt" For Input As #1
    Open "c:\tarifeu2.txt" For Random As #2 Len = Len(MyRecord.Desc2)
    Open "c:\tarifeu1.txt" For Random As #3 Len = Len(MyRecord.Desc3)

    Dim a2, a3 As String * 54
    i = 1

    Do While Not EOF(1)

    If (i Mod 2) = 0 Then
    MyRecord.Desc2 = Input(54, 1)
    Put #2, , MyRecord.Desc2
    Else
    MyRecord.Desc3 = Input(54, 1)
    Put #3, , MyRecord.Desc3

    If i <> 60245 Then
    MyRecord.Desc = Input(10, 1)
    End If
    End If

    i = i + 1

    Loop
    Close #1
    Unload Me

    End Sub


    Il Problema è che nei due file ogni 27 righe scritte una sotto l'altra, le comincia a scrivere una vicino all'altra per poi ricominciare normalmente.

    Conoscete un metodo alternativo??? Il file è questo:

    000000000000000...per 54 volte|10 spazi|000000...per 54 volte

    io devo cancellare la seconda parte per ogni riga e memorizzarla in un altro file.

    Vi prego è urgente!!!
    Ge

  2. #2
    Il forum Visual Basic fa al caso tuo

  3. #3
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Ti prego spiegati meglio.
    Saprei risolverlo, ma non ho capito niente...

    Non attaccare / abbriviare le parole, metti gli invii e parla meglio, ....


  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    58
    Scusa hai ragione.
    Allora il file è composto da un solo record. ma come puoi vedere dalla figura sembrano due colonne separate.
    quello che devo fare è creare un nuovo file che contenga una colonna unica composta da tutte le righe della prima colonna del file di origine seguite dalle righe della seconda colonna del file di origine.

    Così va meglio?
    Ge

  5. #5
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Originariamente inviato da gege
    Scusa hai ragione.
    Allora il file è composto da un solo record. ma come puoi vedere dalla figura sembrano due colonne separate.
    quello che devo fare è creare un nuovo file che contenga una colonna unica composta da tutte le righe della prima colonna del file di origine seguite dalle righe della seconda colonna del file di origine.

    Così va meglio?
    Non so se ho capito ma io lo farei così:
    codice:
    Private Const LCOL As Integer = 54
    Private Const LSPACE As Integer = 10
    
    
    Private Sub Form_Load()
    Open "File" For Binary As #1
    Open "FileDest" For Binary As #2
    
    Dim C1 As String * LCOL
    Dim C1 As String * LCOL
    Dim Dove As Long, DoveW As Long
    Dove = 1: DoveW = 1
    Do
        'Legge 1
        Get #1, Dove, C1
        'Salta lo spazio
        Dove = Dove + LCOL + LSPACE
        'Legge 2
        Get #1, Dove, C2
        Dove = Dove + LCOL
        'Calcola il newline
        Dove = Dove + 2
        
        'Scrive 1
        Put #2, DoveW, C1
        DoveW = DoveW + LCOL
        'Scrive 2
        Put #2, DoveW, C2
        DoveW = DoveW + LCOL
        'Scrive il newline
        Put #2, DoveW, vbNewLine
        DoveW = DoveW + 2
    Loop Until EOF(1)
    End Sub
    Prova se è quello che intendi... se funzia...

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    58
    Funziona benissimo!!!!

    Grazie pr l'aiuto. non ce l'avrei mai fatta!
    Magari se ho qualche altro problema posso contattarti? Lasciami la tua e-mail. Ciao grazie! :tongue:
    Ge

  7. #7
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012

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.