Condividi:        

Sempre su Autohotkey...importare dati e copiarli in file.txt

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

Re: Sempre su Autohotkey...importare dati e copiarli in file

Postdi Anthony47 » 24/01/24 23:40

Dunque ho provato e funziona anche la tua soluzione.
[. . . ]
L'unica cosa che non va è l'allineamento dei gruppi di numeri nel file di testo:risultano "storti" e non in colonna!

Dopo l'esecuzione della macro a me i file escono apparentemente corretti:
Immagine

(questo e' la parte iniziale dei dati appena raccolti nel file RS GFS Analisi.txt, accodati al blocco raccolto oggi pomeriggio, aperto tramite BloccoNote)


Hai gia' la soluzione di Dylan, quindi sei a posto così
Se hai voglia e tempo potresti provare a sostituire la seconda linea "Print" con questa:
Codice: Seleziona tutto
    Print #FreeF, Replace(Replace(mySplit(1), Chr(34), "", , , vbTextCompare), Chr(10), vbCrLf, , , vbTextCompare)

Ciao a tutti
Avatar utente
Anthony47
Moderatore
 
Post: 19232
Iscritto il: 21/03/06 16:03
Località: Ivrea

Sponsor
 

Re: Sempre su Autohotkey...importare dati e copiarli in file

Postdi Paolo67met » 25/01/24 19:46

Ciao Anthony,
il problema del non allineamento potrebbe essere dovuto forse a qualche conflitto che ho nel mio sistema operativo?
Boh no so!
Cmq ho sostituito la porzione di codice ed adesso risultano tutte in colonna.
Potresti evitare di far figurare le prime 2 righe vuote?
La tua soluzione è una piacevole alternativa a quella di Dylan!
Paolo67met
Utente Junior
 
Post: 35
Iscritto il: 17/01/24 20:25

Re: Sempre su Autohotkey...importare dati e copiarli in file

Postdi Anthony47 » 25/01/24 22:49

Ho modificato la macro in questo modo:
Codice: Seleziona tutto
Sub NoaaImport()
Dim RTxt As String, mySplit
Dim FreeF, cTxtFile, I As Long
Dim XMLObj As Object
'
Set XMLObj = CreateObject("msxml2.xmlhttp")
Debug.Print "Ready --->"
For I = 1 To 10
    If Len(Range("B5").Cells(I, 1)) < 3 Then Exit For
    myUrl = Range("C5").Cells(I, 1).Value
    With XMLObj
        .Open "GET", myUrl, False
        .send
        RTxt = .responseText
    End With
    mySplit = Split(RTxt & " " & "kt" & Chr(10) & "..VUOTO. ", "kt" & Chr(10), , vbTextCompare)
    mySplit = Split(mySplit(1), Chr(10) & Chr(10), , vbTextCompare)
'
    FreeF = FreeFile
    cTxtFile = Range("B1") & Range("B5").Cells(I, 1).Value
    Debug.Print cTxtFile, "I=" & I, Len(RTxt), Left(mySplit(1), 50)
    Open cTxtFile For Append As #FreeF
'    Print #FreeF, Format(Now, "dd-mmm-yy hh:mm")               '********** SOLO DEBUG?
    Print #FreeF, Replace(Replace(mySplit(0), Chr(34), "", , , vbTextCompare), Chr(10), vbCrLf, , , vbTextCompare)
    Close #FreeF
Next I
Set XMLObj = Nothing
MsgBox ("Importati N° " & I - 1 & " file")
End Sub


Eseguendola due volte (quindi accodando la seconda importazione alla prima) ottengo questi dati (vista parziale):
Codice: Seleziona tutto
      4     70  32678   -586   -967    284     46
      4     50  34839   -477  99999    275     55
      4     30  38309   -337  99999    273     97
      4     20  41214   -243  99999    256    131
      4     10  46384   -156  99999    269    182
      9  10000    210     80     49     95      1
      4   9750    419     76     41    340      0
      4   9500    633     73     31    285      4
      4   9250    853     76     17    280      7
      4   9000   1079     88      5    275      6
      4   8500   1552     84    -25    131      4
quindi non ci sono interlinee oltre lo stretto necessario, ne' in testa ne' in coda

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19232
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Sempre su Autohotkey...importare dati e copiarli in file

Postdi Paolo67met » 26/01/24 20:12

Allora correggimi se sbaglio:dovevo sostituire la vecchia macro con solo quella che hai modificato?
L'ho fatto ma adesso compare solo 1 linea vuota.
Ho capito male?
Immagine
Paolo67met
Utente Junior
 
Post: 35
Iscritto il: 17/01/24 20:25

Re: Sempre su Autohotkey...importare dati e copiarli in file

Postdi Anthony47 » 27/01/24 01:04

Si, dovevi sostituire la macro vecchia con la nuova.
Mi stai dicendo che c'e' sempre una interlinea spuria? Evidentemente il file "vuoto" parte con una interlinea; la dimostrazione possiamo averla eseguendo due volte la Sub NoaaImport: se i blocchi sono privi di interlinee spurie (come nell'esempio che ti avevo allegato) allora e' il file di partenza.
Ma il file di partenza ha qualche contenuto che bisogna mantenere o serve solo per contenere il nostro blocco?

Comunque fai la prova che ti ho detto e poi ne parliamo
Avatar utente
Anthony47
Moderatore
 
Post: 19232
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Sempre su Autohotkey...importare dati e copiarli in file

Postdi Paolo67met » 27/01/24 07:12

Fatta la prova ma rimane sempre una interlinea.
Anche io ho totato che impartendo 2 volte la Sub il blocco risulta privo di linea.
Bah!
Il file.txt deve solo contenere quelle informazioni che poi sono importate in altro foglio di lavoro.
Dopo viene svuotato,non rimane nulla all'interno.
Lo svuoto con questa routine .bat

echo[ > "E:\Meteorologia\Software meteo\Wetbulb in quota\RS GFS analisi.txt"
echo[ > "E:\Meteorologia\Software meteo\Wetbulb in quota\RS GFS +06.txt"
echo[ > "E:\Meteorologia\Software meteo\Wetbulb in quota\RS GFS +12.txt"
echo[ > "E:\Meteorologia\Software meteo\Wetbulb in quota\RS GFS +18.txt"
echo[ > "E:\Meteorologia\Software meteo\Wetbulb in quota\RS GFS +24.txt"
echo[ > "E:\Meteorologia\Software meteo\Wetbulb in quota\RS GFS +36.txt"
echo[ > "E:\Meteorologia\Software meteo\Wetbulb in quota\RS GFS +48.txt"
echo[ > "E:\Meteorologia\Software meteo\Wetbulb in quota\RS GFS +60.txt"
echo[ > "E:\Meteorologia\Software meteo\Wetbulb in quota\RS GFS +72.txt"
Paolo67met
Utente Junior
 
Post: 35
Iscritto il: 17/01/24 20:25

Re: Sempre su Autohotkey...importare dati e copiarli in file

Postdi Anthony47 » 27/01/24 12:12

Quindi quell'interlinea iniziale e' contenuta nel file iniziale, ed e' il risultato di quel echo[. Qui noto che il "BREAK" suggerito da Dylan (vedi viewtopic.php?f=18&t=113233&p=665911#p665859) non avrebbe inseristo l'interlinea aggiuntiva.
Tuttavia se del file iniziale non c'e' nulla da tenere allora lasciamo che la macro ne crei uno nuovo con i soli dati da essa raccolti e dimenticati del .bat che "azzera" i file prima dell'importazione.
Allo scopo, nella Sub NoaaImport, sostituisci la riga Open cTxtFile For Append As #FreeF con:
Codice: Seleziona tutto
    Open cTxtFile For Output As #FreeF


Prova...
Avatar utente
Anthony47
Moderatore
 
Post: 19232
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Sempre su Autohotkey...importare dati e copiarli in file

Postdi Paolo67met » 27/01/24 13:27

Si adesso funge!
Mi riservo di adoperare la tua soluzione nel caso debbano servirmi i dati fino all'ultima linea (la 32)
Attualmente utilizzo le prime 13 righe.
Grazie Anthony
Paolo67met
Utente Junior
 
Post: 35
Iscritto il: 17/01/24 20:25

Precedente

Torna a Programmazione


Topic correlati a "Sempre su Autohotkey...importare dati e copiarli in file.txt":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti