Newsgroup: it.comp.lang.visual-basic
Titolo: Scrittura dati in file .txt o .xls

Mi pare assurdo.
Devo estrarre informazioni da un file di font unicode.
Questi sono in 256 pagine da 256 caratteri ciascuna.
Ok, questo è fatto.
Poi, i dati estratti, devo portarli su un foglio di excel, oppure anche in
un file di testo, e qui nasce il problema.
Dopo aver scritto circa 20400 informazioni, ricevo un errore di overflow.
Dopodichè il pc si inchioda.
Inutile chiudere e riaprire il file, inutile spezzare l'esportazione,
inutile interrompere l'esecuzione del codice e riattivarlo, inutile
tutto...!! :-((
Potete aiutarmi?
Mary

controlla i tipi di dati dichiarati. Non è che fai un ciclo che supera i
65000 e hai dichiarato in integer?
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
www.nicolaottomano.it

 wrote in message
31SVb.31835$VS6....@tornado.fastwebnet.it...


 Che mi dici?
che forse, a questo punto, è il caso che tu posti il codice che utilizzi per
scrivere i dati nel foglio di excel
--
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 Che mi dici?
Posta il codice e vediamo.


Ecco il semplicissimo codice.
La versione postata, scrive in un file .txt (fino a quando non si blocca per
overflow).
Ci sono un paio di COMMENTI in MAIUSCOLO per farvi capire un po' meglio.
Public Sub AnalizzaFile(strNomeFile As String)
'Dim strMyPath As String, TipoFile As String
'Dim strNomeFile As String
Dim File As Integer, txtFile As Integer
Dim Riga As String
Dim strNomeFont As String, strDimFont As String
Dim intCode As Integer, intWidth As Integer, intPage As Integer
Dim arrData(5)
Dim strCode As String, strMyPath As String, strFileoutput As String
strMyPath = CurDir
QUESTA PRIMA PARTE SERVE A PRAPARARE IL FILE DI DESTINAZIONE
  If ioresult(strNomeFile) Then
    File = FreeFile
    Open (strNomeFile) For Input Shared As #File
    Line Input #File, Riga
    Do
      If InStr(1, Riga, "/* face name */") > 0 Then
        strNomeFont = RecuperaNome(Riga)
        Monitor.FontName2 = strNomeFont
      ElseIf InStr(1, Riga, "/* pixelSize */") > 0 Then
        strDimFont = RecuperaDimensione(Riga)
        Monitor.FontDim = strDimFont
      End If
      Line Input #File, Riga
      If EOF(File) Then
        MsgBox "Probabilmente non è il file adatto!!", vbCritical, "Errore
di selezione"
        Exit Sub
      End If
    Loop Until strNomeFont <> "" And strDimFont <> ""
    Close #File
    If Len(strNomeFont) > 0 Then
'      Call OpenExcel
      strFileoutput = Left$(strNomeFile, Len(strNomeFile) - 2) & "-OUT.txt"
      If ioresult(strFileoutput) Then
        If MsgBox("File named " & strFileoutput & " just exist. Overwrite?",
vbQuestion + vbOKCancel, "Confirm Please") = vbOK Then
          Kill (strFileoutput)
        Else
          Exit Sub
        End If
      End If
QUI APRO IL FILE DI DESTINAZIONE
      txtFile = FreeFile
      Open (strFileoutput) For Append Access Write Shared As #txtFile
      Write #txtFile, "Code;Page;Index;Width;Pos"
    End If
    File = FreeFile
    Open (strNomeFile) For Input Shared As #File
    Do
QUI PREPARO I DATI DA SCRIVERE
      Line Input #File, Riga
      If InStr(1, Riga, "/* 0x") > 0 Then
        strCode = Mid$(Riga, InStr(1, Riga, "/* 0x") + 3, 6)
      ElseIf InStr(1, Riga, "/* page */") > 0 Then
        intPage = RecuperaCodice(Riga)
        Monitor.NumPage = intPage
        arrData(0) = CInt(intPage)
'        Call FillExcel(intPage, "Page")
      ElseIf InStr(1, Riga, "/* index */") > 0 Then
        intCode = RecuperaCodice(Riga)
        Monitor.NumChar = intCode
        arrData(1) = CInt(intCode)
'        Call FillExcel(intCode, "Code")
      ElseIf InStr(1, Riga, "/* width */") > 0 Then
        intWidth = RecuperaCodice(Riga)
        arrData(2) = CInt(intWidth)
'        Call FillExcel(intWidth, "Width")
      End If
      If InStr(1, Riga, "/* ascent */") > 0 Then
'        Call FillExcel1(strCode, arrData)
QUI SCRIVO LE RIGHE
        Write #txtFile, strCode & ";" & intPage & ";" & intCode & ";" &
intWidth & ";" & intPage * 256 + intCode
      End If
    Loop Until EOF(File)
    Close #File
    Close #txtFile
  End If
End Sub
QUESTE SONO LE ULTIME RIGHE CHE SCRIVE
"0x7e6c;126;108;12;32364"
"0x7e6d;126;109;12;32365"
"0x7e6e;126;110;12;32366"
"0x7e6f;126;111;12;32367"
Grazie ragazzi
Mary

 intWidth & ";" & intPage * 256 + intCode
Secondo me va in overflow quando esegue il calcolo intpage*256+intcode in
quanto dichiarati integer, prova con dei long.
Walter

 wrote in message
QqlWb.218767$VW.89...@news3.tin.it...


 Mary
In VB gli integer sono solo con il segno e perciň -32768 <> 32767.
Nel file lo vedi che si ferma prima perché andando in errore rimane una
parte in memoria.
Walter.

 wrote in message
UYnWb.219357$VW.89...@news3.tin.it...


 wrote in message
FQoWb.294356$_P.10...@news4.tin.it...
