Novità

Funzione per leggere file di testo con Spaziometria

stef

Member
Esiste una funzione per leggere file di testo con script di spaziometria?
Ho provato con la funzione ApriBaseDatiFT, ma il formato deve rispettare delle regole diverse da quelle del mio file che ha questa formattazione:


 

lotto_tom75

Advanced Premium Member
Esiste una funzione per leggere file di testo con script di spaziometria?
Ho provato con la funzione ApriBaseDatiFT, ma il formato deve rispettare delle regole diverse da quelle del mio file che ha questa formattazione:



Ciao, non so se ti riferisci a questo...

Codice:
dim sfiletxtgrupponumerico, sfile

sfiletxtgrupponumerico=".\sfiletxtgrupponumerico.txt"

sfile = sfiletxtgrupponumerico

Call Messaggio("Lettura file di testo")

      ReDim aRighe(0)

      Call LeggiRigheFileDiTesto(sfile,aRighe)
     
      For y = 0 To UBound(aRighe)

      If aRighe(y) <> "" Then
   

     Call SplitByChar(aRighe(y),".",aNum)

scrivi stringanumeri(aNum)

if scriptinterrotto then exit for
  next

In questo esempio ti legge un file .txt in cui ci sono righe con numeri intervallati da carattere punto "."
 

stef

Member
Ciao lotto_tom, lo script che mi hai indicato è ok per la lettura di un file di testo.
Ora vorrei caricare in un array ogni singolo carattere presente nel file.

Hai qualche suggerimento da darmi?
 

lotto_tom75

Advanced Premium Member
Ciao lotto_tom, lo script che mi hai indicato è ok per la lettura di un file di testo.
Ora vorrei caricare in un array ogni singolo carattere presente nel file.

Hai qualche suggerimento da darmi?

in realtà l'array ce lo hai già caricato nel precedente script...
il relativo contenuto lo vedi con un opportuno for...


Codice:
Option Explicit
Sub Main
   Dim anum
   Dim y
   Dim c
   Dim sfiletxtgrupponumerico,sfile
   sfiletxtgrupponumerico = ".\sfiletxtgrupponumerico.txt"
   sfile = sfiletxtgrupponumerico
   Call Messaggio("Lettura file di testo")
   ReDim aRighe(0)
   Call LeggiRigheFileDiTesto(sfile,aRighe)
   For y = 0 To UBound(aRighe)
      If aRighe(y) <> "" Then
         Call SplitByChar(aRighe(y),".",anum)
         Scrivi StringaNumeri(anum)
         If ScriptInterrotto Then Exit For
      End If
      Scrivi
      Scrivi "contenuto array "
      Scrivi
      For c = 0 To UBound(anum)
         Scrivi anum(c)
         If ScriptInterrotto Then Exit For
      Next
End Sub

:)
 

lotto_tom75

Advanced Premium Member
ma a te funziona?

A me da questo errore:


Si a me con questo code (copialo e incollalo identico... da qui sotto... 👇) che ti ho postato sopra e che ti rimetto qui sotto...


Codice:
Option Explicit
Sub Main
   Dim anum
   Dim y
   Dim c
   Dim sfiletxtgrupponumerico,sfile
   sfiletxtgrupponumerico = ".\sfiletxtgrupponumerico.txt"
   sfile = sfiletxtgrupponumerico
   Call Messaggio("Lettura file di testo")
   ReDim aRighe(0)
   Call LeggiRigheFileDiTesto(sfile,aRighe)
   For y = 0 To UBound(aRighe)
      If aRighe(y) <> "" Then
         Call SplitByChar(aRighe(y),".",anum)
         Scrivi StringaNumeri(anum)
         If ScriptInterrotto Then Exit For
      End If
      Scrivi
      Scrivi "contenuto array "
      Scrivi
      For c = 0 To UBound(anum)
         Scrivi anum(c) 
  
         If ScriptInterrotto Then Exit For
      Next
  
        If ScriptInterrotto Then Exit For
      Next
  
End Sub

se carico il file txt, che deve essere posto nella stessa cartella dove risiede lo script e nominato sfiletxtgrupponumerico.txt, contenente questa riga di es. 1.2.3.4.5.6.7.8.9.10

mi da correttamente questo output a video...

1.2.3.4.5.6.7.8.9.10

contenuto array

1
2
3
4
5
6
7
8
9
10

Io per adesso ho attiva la versione 1.6.34 di spaziometria ma non dovrebbe essere determinante...

riprova...
 

joe

Advanced Member >PLATINUM PLUS<
Secondo me...

devi solo cambiare il separatore dei caratteri.

Se nel file c'è il punto e virgola non puoi splittare usando il punto.

Perché i valori non si separano e non c'è nulla da esporre.

:)
 

lotto_tom75

Advanced Premium Member
Secondo me...

devi solo cambiare il separatore dei caratteri.

Se nel file c'è il punto e virgola non puoi splittare usando il punto.

Perché i valori non si separano e non c'è nulla da esporre.

:)

Ciao joe, nell'es. gli ho spiegato di separare i valori numerici con il carattere punto..
 

joe

Advanced Member >PLATINUM PLUS<
Tu si ...

... ma se lui ha già i numeri archiviati ha su disco ?

Secondo me è più facile cambiare un carattere nello script

piuttosto che tutti i separatori nel file archiviato

Ma è una mia opinione.

:)
 

lotto_tom75

Advanced Premium Member
Tu si ...

... ma se lui lo ha su disco ?

Secondo me è più facile cambiare un carattere nello script

piuttosto che tutti i separatori nel file archiviato

Ma è una mia opinione.

:)

Hai ragione joe non avevo fatto caso al contenuto del suo txt...

x stef: se nel tuo txt hai i caratteri separati da punto e virgola fai come consigliato da joe

in altre parole... copia e incolla il codice sottostante 👇 e vedrai che ti funziona ;)

Codice:
Option Explicit
Sub Main
   Dim anum
   Dim y
   Dim c
   Dim sfiletxtgrupponumerico,sfile
   sfiletxtgrupponumerico = ".\sfiletxtgrupponumerico.txt"
   sfile = sfiletxtgrupponumerico
   Call Messaggio("Lettura file di testo")
   ReDim aRighe(0)
   Call LeggiRigheFileDiTesto(sfile,aRighe)
   For y = 0 To UBound(aRighe)
      If aRighe(y) <> "" Then
         Call SplitByChar(aRighe(y),";",anum)
         Scrivi StringaNumeri(anum)
         If ScriptInterrotto Then Exit For
      End If
      Scrivi
      Scrivi "contenuto array "
      Scrivi
      For c = 0 To UBound(anum)
         Scrivi anum(c)
 
         If ScriptInterrotto Then Exit For
      Next
 
        If ScriptInterrotto Then Exit For
      Next
 
End Sub

Se poi vorrai analizzare righe con caratteri separatori diversi tutto quello che dovrai fare sarà soltanto cambiare questa riga

Codice:
 Call SplitByChar(aRighe(y),";",anum)

mettendo al posto del ; il carattere separatore che avrai deciso di utilizzare...
 

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 03 maggio 2024
    Bari
    38
    11
    08
    19
    81
    Cagliari
    69
    50
    27
    65
    06
    Firenze
    60
    05
    42
    75
    84
    Genova
    17
    29
    71
    48
    80
    Milano
    02
    33
    81
    85
    63
    Napoli
    12
    10
    29
    51
    84
    Palermo
    04
    21
    69
    79
    50
    Roma
    62
    72
    84
    30
    90
    Torino
    41
    33
    46
    03
    68
    Venezia
    03
    29
    10
    85
    33
    Nazionale
    72
    03
    82
    37
    58
    Estrazione Simbolotto
    Milano
    19
    22
    24
    08
    32
Alto