Novità

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

lotto_tom75

Advanced Premium Member
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 >PLATINUM<
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

Advanced Premium Member
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

Premium Member
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

Advanced Premium Member
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

Premium Member
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 >PLATINUM<
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 PLUS<
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 >PLATINUM<
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

Premium Member
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 PLUS<
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

Advanced Premium Member
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

Premium Member
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
    martedì 26 marzo 2024
    Bari
    30
    51
    17
    01
    53
    Cagliari
    13
    70
    25
    68
    47
    Firenze
    28
    30
    54
    70
    88
    Genova
    67
    87
    22
    03
    62
    Milano
    22
    34
    13
    47
    24
    Napoli
    20
    72
    59
    01
    52
    Palermo
    05
    72
    65
    52
    32
    Roma
    28
    43
    75
    54
    87
    Torino
    16
    08
    17
    24
    38
    Venezia
    67
    28
    55
    60
    29
    Nazionale
    15
    69
    22
    63
    39
    Estrazione Simbolotto
    Firenze
    44
    09
    31
    22
    16

Ultimi Messaggi

Alto