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

    Problema lettura file sequenziale!

    Salve Bombers!

    Ciao a tutti.Mi sto scervellando con questa parte del mio
    programma che, seppur banale non riesco a risolvere autonomamente.
    Ho un file sequenziale che il nostro server gestionale estrae. Questo file è
    composto da un susseguirsi di righe composte da 100 caratteri.
    Fino ad adesso tutto era gestito da una macro Excel banalissima e tutto
    funzionava alla grande. Questa macro, prendeva i primi 10 caratteri della
    stringa e buttava gli altri. Il codice (banalissimo), era questo:

    Dim FSO As New FileSystemObject
    Dim TS As TextStream

    Set TS = FSO.OpenTextFile(FileName, FORREADING)

    Do While Not TS.AtEndOfStream
    s = TS.Read(10)
    TS.Skip 90
    Loop

    Adesso ho voluto rifare la stessa cosa in asp.net 2.0 ma purtroppo (o magari
    sbaglio) il TextStream non c'è, quindi mi sono dovuto arrangiare per usare la
    proprietà Skip. Ho fatto una cosa del genere

    ====ASP.NET 2.0==================================
    Dim y As Long
    Dim Lettore As New System.IO.StreamReader("C:\F.SER")
    Dim personRecords As String = Lettore.ReadLine
    Dim personList As List(Of Person) = New List(Of Person)()

    effettivo = personRecords.Length

    For y = 1 To effettivo Step 100
    personrecord = Mid(personRecords, y, 10)
    personList.Add(Me.GetPersonFromString(personrecord ))
    Next y

    Return personList
    ================================================== =

    Come potete vedere la logica alla fine è la stessa, con mid scorro di 100 in
    100 e prendo solo i primi 10 caratteri (che sono quelli del codice articolo
    che mi interessano)

    Il problema dov'è? (direte voi, giustamente)..
    Il problema è che le righe di quel file sono tipo 10000.
    Con excel funziona tutto alla grande, con ASP.NET dopo un pochetto scoppia
    qualcosa e, tipo alle 250 esima riga comincia a sfalsararmi il tutto e dove
    prima era:

    BARATTOLO1
    BARATTOLO2
    BARATTOLO3
    BARATTOLO4

    Comincia a uscrmi:

    BARATTOLO5
    ARATTOLO1-
    RATTOLO1-X
    ATTOLO1-XY

    Cosa sbaglio? Il file sono sicuro sia fatto bene, lo dimostra il fatto che
    sia excel che EDIT di windows (impostando la lettura a 100 caratteri per
    riga) mostri i dati in modo corretto. La mia ipotesi è che il comando
    (vecchio comando) SKIP di VB6 non è proprio la stessa cosa di quello che
    faccio, quindi dopo un tot di passaggi comincia a prendermi caratteri che non
    dovrebbe prendere

    Idee?
    Grazie mille in anticipo!
    LiNux is damned gooD!!

  2. #2
    Risolto. Problema di encoding

    Se NON si imposta l'encoder, quello di default non è : System.Text.Encoding.Default ma un altro...


    Dim reader As New System.IO.StreamReader("C:\F.SER", System.Text.Encoding.Default)

    Grazie e buon lavoro e coding!
    LiNux is damned gooD!!

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.