Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB.NET] Caratteri strani nel file

    Ciao,
    ho un programma che prende in input un file di testo "pulito" contenente dati anagrafici e lo scrive in output con dei campi aggiunti e diviso in lotti da 200 Mb. Il problema è che in un paio di questi lotti alcuni record contengono strane informazioni non presenti nell'input, per esempio nomi di files che trovo sul mio pc, percorsi, pezzi di codice, addirittura il nome del nostro workgroup...
    riporto alcune parti:
    "MLangBarCmd£Lü˙ OemStartMenuDataĜ˙˙˙vk MaxFileSize Distinguished-Name à˙˙˙vk àß{ hß{ ¸à{ €à{ á{ àà{"
    Non potrei riportare tutto perchè inserisce anche caratteri che non verrebbero visualizzati.
    Il numero di bytes dell'output non cambia, risulta corretto. In pratica queste scritte non sono aggiuntive, ma vengono sostituite ai dati corretti. Si tratta solo di un paio di record, ma è comunque un incoveniente.
    Utilizzo la modalità random per leggere e scrivere i files. Sistema operativo WindowsXP.

    A cosa può essere dovuto?

  2. #2
    posta il codice
    by giuSp [.NetDeveloper]

    ___________
    un po' di VB non fa male!....?
    C# more power to you!!

  3. #3
    Oups... apro in modalità Binary, non random.
    Ecco il codice
    codice:
    Public Const PercorsoInput = "C:\WORK\INPS\F24\FASE2\"
    Public Const FileInput = "INPS_FASE1.OUT"
    Public Const FileDa = 40000
    
    Structure Record
        <VBFixedString(5171)> Dim Rec As String
    End Structure
    Dim RC As Record
    
        Private Sub TastoStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TastoStart.Click
            Dim NumeroDiRecord As Long
            Dim ContatoreFileOutput As Long
            Dim ContatoreRecordOutput As Long
            Dim ContatoreRecordInput As Long
            Dim StringaApp As String
    
            FileOpen(1, PercorsoInput & FileInput, OpenMode.Binary, , , Len(RC))
            NumeroDiRecord = LOF(1) / Len(RC)
            ContatoreFileOutput = 0
            ContatoreRecordOutput = FileDa
            For ContatoreRecordInput = 1 To NumeroDiRecord
                If ContatoreRecordOutput = FileDa Then
                    FileClose(2)
                    ContatoreFileOutput = ContatoreFileOutput + 1
                    ContatoreRecordOutput = 0
                    FileOpen(2, PercorsoInput & Format(ContatoreFileOutput + 20, "0000") & ".F02", OpenMode.Binary, , , Len(RC))
                End If
                FileGet(1, RC)
                FilePut(2, RC)
                ContatoreRecordOutput = ContatoreRecordOutput + 1
                If ContatoreRecordInput Mod 1000 = 0 Then
                    Me.Text = ContatoreRecordInput
                    Me.Refresh()
                End If
            Next
            FileClose(1)
            FileClose(2)
    
            MsgBox("FASE 2 TERMINATA. FILE SCRITTI IN OUTPUT: " & ContatoreFileOutput)
            End
        End Sub

  4. #4
    ... dimenticavo... ho tolto il campo che prima aggiungevo (un progressivo), comunque da lo stesso problema

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.