Novità

Come pulire velocemente uno script corposo con tante righe vuote e commentate?

lotto_tom75

Premium Member
Messaggi
9.198
Punti reazione
714
Punti
113
Mi trovo nella necessità di dover "pulire" da molte righe di codice vuote e commentate, che di volta in volta ho creato costruendo corposi script. Le ho lasciate pensando mi potessero riservire..., ma adesso invece mi fanno solo "ulteriore confusione" nel cercare di ottimizzare o modificare ulteriormente gli stessi script che le contengono... Ora il problema è che se faccio la pulizia a mano non mi passa +... da quanto è lento e certosino il procedimento... 😓😑 C'è un modo per velocizzare tutto con word o notepad++ o lo stesso semplicissimo notepad? 🤔 Tipo un comando per dire al sistema... "sostituisci tutte le righe commentate che iniziano con in carattere " ' "oppure tutte le righe vuote..." Grazie e Good Week End a tutti/e 👋 :)
 

Giggio

Super Member >GOLD<
Messaggi
208
Punti reazione
61
Punti
28
potresti sempre fare uno script che leggendo il primo riga per riga scriva su un altro file solo le righe che non iniziano con il simbolo del rem.
 

lotto_tom75

Premium Member
Messaggi
9.198
Punti reazione
714
Punti
113
potresti sempre fare uno script che leggendo il primo riga per riga scriva su un altro file solo le righe che non iniziano con il simbolo del rem.
Grande ci provo :D 👌👍 Grz!

Ps: per eliminare le righe vuote forse ho trovato... Sembra infatti che basti cliccare sull'icona "auto formattazione script" 🙃
 

claudio8

Advanced Member >PLATINUM PLUS<
Messaggi
3.375
Punti reazione
207
Punti
63
Però TE="lotto_tom75, post: 2264475, member: 5083"]
Grande ci provo :D 👌👍 Grz!

Ps: per eliminare le righe vuote forse ho trovato... Sembra infatti che basti cliccare sull'icona "auto formattazione script" 🙃
[/QUOTE]
Però niente male questa soluzione.
Vuol dire che non hai mai formattato/indentato uno script......

Ahahaha ;);););)
Vedi che c'è anche una icona che ti esclude la colorazione del testo dandoti velocità ad operazioni di cancellazione.
Saluti :) ;) ;)
 

lotto_tom75

Premium Member
Messaggi
9.198
Punti reazione
714
Punti
113
Ciao, autoformattazione ti toglie le righe vuote, non le righe remmate
Ciao, autoformattazione ti toglie le righe vuote, non le righe remmate
Si infatti salvo50 avevo visto che con auto formattazione risolveva solo il primo problemino. Per eliminare le righe remmate proverò la soluzione consigliata da Giggio... Grz comunque per essere intervenuto 👋:)
 

lotto_tom75

Premium Member
Messaggi
9.198
Punti reazione
714
Punti
113
In effetti quel
Però TE="lotto_tom75, post: 2264475, member: 5083"]
Grande ci provo :D 👌👍 Grz!

Ps: per eliminare le righe vuote forse ho trovato... Sembra infatti che basti cliccare sull'icona "auto formattazione script" 🙃
Però niente male questa soluzione.
Vuol dire che non hai mai formattato/indentato uno script......

Ahahaha ;);););)
Vedi che c'è anche una icona che ti esclude la colorazione del testo dandoti velocità ad operazioni di cancellazione.
Saluti :) ;) ;)
Già caro claude fino ad oggi ho ignorato l'esistenza di quel bottone "auto formattante" e "auto indentante" :eek:🤪🤣 Ma l'icona "velocizzante" 😵 cui fai riferimento quale sarebbe? 😮😲
 

claudio8

Advanced Member >PLATINUM PLUS<
Messaggi
3.375
Punti reazione
207
Punti
63
Il quadratino ha 3 scelte :
Solo la videata
Tutto lo script a colori
Tutto lo script senza colore che è quello che ti serve..
Prepara il bonifico.
;) ;) ;)
 
Ultima modifica:

Giggio

Super Member >GOLD<
Messaggi
208
Punti reazione
61
Punti
28
una riga in uno script puo essere precduta da spazi ma anche da tab , bisogna crerare una funzione che riceva come parametro una stringa e ci dica se questa stringa inizia con il crattere del rem.

Fatto ciò si legge lo script , ogni riga si passa allla suddetta funzione se la funzione torna false vuol dire che quella riga non ha il rem e percio va scritta nel nuovo file senno verrà saltata.

usare la funzione replace per sostituire il carattere vbTab con stringa vuota ,
usare la funzione replace per sostituire tutti gli spazzi con stringa vuota

otterrmo una stringa senza tab e senza spazi ,a questo punto verificare con la funzione left se il primo carattere è ' (apice).

la stringa viene manipolata solo all'intrno della funzione , nel file ci va scritta la stringa originale.


il tutto è molto semplice ....
 

joe

Advanced Member >PLATINUM<
Messaggi
1.334
Punti reazione
145
Punti
63
LuigiB ... detto il grande,

quando ha spiegato come ripulire le pagine scaricate dal web.

Forse ha inteso stimolare fantasie costruttive.

Giggio, riguardo all'

"usare la funzione replace per sostituire tutti gli spazzi con stringa vuota"

Uno spazio è giusto.

2 Spazi No.

"Una stringa vuota" è troppo corta.

:)
 

Giggio

Super Member >GOLD<
Messaggi
208
Punti reazione
61
Punti
28
ciao Joe , la stringa che andiamo a manipolare viene manipolata solo nella funzione di cui parlavo percio non è necessario che sia sintatticamente corretta , ci serve depurarla dagli spazi e dai tab per poi vedere se il primo carattere è l'apice , quindi puo anche divcentare una sequenza di caratteri tutti attaccati non fa niente ...tuttavia per gestire il rem scritto come parola chiave e non come simbolo apice conviene fare un Ltrim alla stringa in modo da levare gli spazi eventual ia sinistra

Notare che la funzione ha il parametro riga passato ByVal , vuol dire che qualsiasi modifica fatta alla variabile non
sarà riportata all'esterno della funzione.



Codice:
Option Explicit
Sub Main

   MsgBox (RemPresente   ("      ' prova"))
   MsgBox (RemPresente   ("  'prova"))
   MsgBox (RemPresente   ("       prova"))


End Sub
Function RemPresente ( ByVal sRiga)
   sRiga  = Replace (sriga ,vbTab , "")
   sRiga  = LTrim (sriga )
   sRiga = LCase(sriga)

   If Left ( sriga , 1) = "'" Or Left (sriga , 4 ) = "rem " Then
      RemPresente  = True
   Else
      RemPresente = False
   End If

End Function
 
Ultima modifica:

claudio8

Advanced Member >PLATINUM PLUS<
Messaggi
3.375
Punti reazione
207
Punti
63
Niente bon 😁 anche perchè... con "il quadratino ha tre scelte" a quale quadratino ti riferisci venalclaud? :eek::unsure::ROFLMAO:
Caio tirchiotom :cool: bisogna proprio darti la mappa a colori per farti arrivare al tesoro?
Hai verificato che non era il quadratino, bene, prova a dx e sx ( un po' di curiosità nella vita non guasta) avresti trovato il comando giusto :);)
Ti rammento che normalmente sto col cell. e sono residente al
Lido " La Bussola" Rimini. :) ;) :) ;)
Aspetto con trepidante attesa lo script suggeritoti da Giggio
Ciao
 

joe

Advanced Member >PLATINUM<
Messaggi
1.334
Punti reazione
145
Punti
63
Si certo
ciao Joe , la stringa che andiamo a manipolare viene manipolata solo nella funzione di cui parlavo percio non è necessario che sia sintatticamente corretta , ci serve depurarla dagli spazi e dai tab per poi vedere se il primo carattere è l'apice , quindi puo anche divcentare una sequenza di caratteri tutti attaccati non fa niente ...tuttavia per gestire il rem scritto come parola chiave e non come simbolo apice conviene fare un Ltrim alla stringa in modo da levare gli spazi eventual ia sinistra

Notare che la funzione ha il parametro riga passato ByVal , vuol dire che qualsiasi modifica fatta alla variabile non
sarà riportata all'esterno della funzione.



Codice:
Option Explicit
Sub Main

   MsgBox (RemPresente   ("      ' prova"))
   MsgBox (RemPresente   ("  'prova"))
   MsgBox (RemPresente   ("       prova"))


End Sub
Function RemPresente ( ByVal sRiga)
   sRiga  = Replace (sriga ,vbTab , "")
   sRiga  = LTrim (sriga )
   sRiga = LCase(sriga)

   If Left ( sriga , 1) = "'" Or Left (sriga , 4 ) = "rem " Then
      RemPresente  = True
   Else
      RemPresente = False
   End If

End Function
Tutto vero.

Io nella richiesta iniziale ho inteso leggere: compatto e corretto.

:)
 

lotto_tom75

Premium Member
Messaggi
9.198
Punti reazione
714
Punti
113
Grazie a tutti gli intervenuti e in particolare a Giggio che con la sua idea e function relativa ha alleggerito, e non poco, la risoluzione del mio problemino e la stesura di questo script relativo sottostante appunto da lui suggeritomi che potremmo chiamare "il ripulitore" :eek::D sicuramente migliorabile... ma funzionante anche così 👇

Codice:
Sub Main
   Dim sfiletxt,y,sfile
   sfiletxt = ".\sfiletxt.txt"
   Dim c
   ReDim aRighe(0)
   Call LeggiRigheFileDiTesto(sfiletxt,aRighe)
   For y = 0 To UBound(aRighe)
      If aRighe(y) <> "" Then
         For c = 1 To 10000
            Call Messaggio("" & aRighe(y) & "")
            If ScriptInterrotto Then Exit For
         Next
         Call MsgBox(RemPresente("" & aRighe(y) & ""))
      End If
      If ScriptInterrotto Then Exit For
   Next
End Sub
Function RemPresente(ByVal sriga)
   Dim sfiletxtok
   sfiletxtok = "sfiletxtok.txt"
   sriga = Replace(sriga,vbTab,"")
   sriga = LTrim(sriga)
   sriga = LCase(sriga)
   If Left(sriga,1) = "'" Or Left(sriga,4) = "rem " Then
      RemPresente = True     
   Else
      RemPresente = False
      Call ScriviFile(sfiletxtok,"" & sriga & "",False,True)
      CloseFileHandle(sfiletxtok)
   End If
End Function
👋:)
 
Ultima modifica:

i legend

Advanced Member >PLATINUM PLUS<
Messaggi
3.916
Punti reazione
449
Punti
83
Ciao a tutti
Tom se la funzione ritorna false allora scrivi la riga altrimenti continua il ciclo
Quindi scrivi file va fuori dalla funzione
Ciao Giggio, mi sembri il P

rof.:)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 26 settembre 2020
    Bari
    14
    86
    85
    68
    16
    Cagliari
    31
    45
    42
    79
    21
    Firenze
    74
    69
    10
    63
    35
    Genova
    67
    32
    79
    36
    66
    Milano
    89
    59
    36
    77
    90
    Napoli
    58
    33
    06
    18
    56
    Palermo
    30
    19
    62
    90
    17
    Roma
    33
    70
    35
    75
    21
    Torino
    15
    20
    57
    21
    35
    Venezia
    36
    29
    71
    15
    26
    Nazionale
    73
    02
    20
    72
    10
    Estrazione Simbolotto
    Palermo
    21
    07
    14
    16
    18
Alto