Autore Topic: Funzione Scan  (Letto 656 volte)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Funzione Scan
« il: 22 Dicembre 2016, 15:37:31 »
A proposito della funzione Scan se andate sulla guida in linea attualmente trovate questo esempio:
Codice: [Seleziona]
Dim sRisultato As String
Dim sLinea As String
Dim sElt As String

Exec "df" To sResult

For Each sLinea In Split(sRisultato, "\n")
  For Each sElt In Scan(sLinea, "* * * * *")
    Print sElt; "|";
  Next
  Print
Next

che contiene due errori.
Chi li trova per primo vince un chilo di fieno per capre appenniniche.

 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.718
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Funzione Scan
« Risposta #1 il: 22 Dicembre 2016, 16:29:02 »
contiene due errori.
E' vero.
Il secondo è davvero grave.   :-X

Lascio ai nuovi membri del forum la soluzione.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Funzione Scan
« Risposta #2 il: 22 Dicembre 2016, 16:40:15 »
Invero se andiamo a guardare meglio gli errori sono tre  ;)

 :bad:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.727
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Funzione Scan
« Risposta #3 il: 22 Dicembre 2016, 18:35:05 »
 :ciao:
Codice: [Seleziona]
Exec ["df"] To sRisultato
Questo è uno?
Poi quel PRINT per andare a capo... :-\
« Ultima modifica: 22 Dicembre 2016, 18:41:36 da kicco »
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.727
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Funzione Scan
« Risposta #4 il: 22 Dicembre 2016, 18:58:58 »
...ma nell'esempio su gambaswiki.org non ci sono errori! :-\
Da dove hai preso l'esempio?
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.727
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Funzione Scan
« Risposta #5 il: 22 Dicembre 2016, 19:12:31 »
Ho capito hai preso l'esempio in italiano che è "cannato", switch(ia) in inglese e .... :P
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Funzione Scan
« Risposta #6 il: 22 Dicembre 2016, 19:17:45 »
 :P È inutile che fai il furbo per deviare l'attenzione, noi siamo italiani e se diamo un F2 sulla parola chiave otteniamo quell'esempio riportato a inizio Topic.
Tu hai scoperto l'errore più grave ma ce ne sono altri due, se non li scovi niente biada e a letto senza cena  :rotfl:

E comunque un errore c'è pure nell'esempio inglese  :P
 :D :ciao:

« Ultima modifica: 22 Dicembre 2016, 19:23:41 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Funzione Scan
« Risposta #7 il: 22 Dicembre 2016, 19:30:10 »
Noto una cosa: Ti sei accorto del grave errore su Exec perché lo hai raffrontato con quello in inglese, ma non puoi farlo andare e vedere cosa ti dice Gambas?
Due li indica per il terzo occorre essere Guru Guru e Occhi di Lince  ;D
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.727
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Funzione Scan
« Risposta #8 il: 22 Dicembre 2016, 19:59:02 »
Citazione
Ti sei accorto del grave errore su Exec perché lo hai raffrontato con quello in inglese
No! Come puoi notare prima ho trovato l'errore, e l'ho fatto solo controllando la sintassi di EXEC.
Poi mi sono accorto dell'errore nella versione italiana approfondendo la questione (e qua ci sarebbe già un punto in più per la buona volontà!).
più un punto per l'errore grave (il mio primo punto  :P :P :P :P) e non me lo porta via nessuno...
Citazione
Tu hai scoperto l'errore più grave ma ce ne sono altri due, se non li scovi niente biada e a letto senza cena
Intanto apro una bella bottiglia per brindare!!! ;D ;D ;D :2birre: :2birre:
Citazione
noi siamo italiani
io sono italiano professionista...

..ma il codice gira correttamente, gli altri sono solo errori formali?
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.727
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Funzione Scan
« Risposta #9 il: 22 Dicembre 2016, 20:04:28 »
Codice: [Seleziona]
 For Each sElt In Scan(sLine, "* * * * * *")
mancava un asterisco... :D
E anche qui un punticino?? :P
...
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Funzione Scan
« Risposta #10 il: 22 Dicembre 2016, 20:12:39 »
Codice: [Seleziona]
 For Each sElt In Scan(sLine, "* * * * * *")
mancava un asterisco... :D
E anche qui un punticino?? :P
...

 :ok: :ok: :ok:

Per un po la biada non mancherà  ;D

Hai vinto, l'altro era un refuso, era rimasta la variabile in inglese sResult nella frase Exec.
Se l'esempio lo si scrive così, si capisce meglio:
Codice: [Seleziona]
Public Sub Main()

  Dim sRisultato As String
  Dim sLinea As String
  Dim sElt As String
  Dim b As Byte
 
  Exec ["df"] To sRisultato
 
  For Each sLinea In Split(sRisultato, "\n")
    Print "-----------------------------------------------------------------------------------------------------"
    For Each sElt In Scan(sLinea, "* * * * * *")
      b = (16 - Len(sElt))
      Print sElt; Space(b); "|";     
    Next
    Print   
  Next

End

 :D  :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.727
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Funzione Scan
« Risposta #11 il: 22 Dicembre 2016, 20:19:36 »
Citazione
così, si capisce meglio:
direi proprio di sì :)
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Funzione Scan
« Risposta #12 il: 22 Dicembre 2016, 20:34:33 »
Citazione
così, si capisce meglio:
direi proprio di sì :)

Però Fyle | System che scivola di un posto sballa tutto comunque altrimenti potevano andare anche 5 asterischi.
Insomma Scan funziona un po così così

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.718
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Funzione Scan
« Risposta #13 il: 22 Dicembre 2016, 20:40:38 »
Poi quel PRINT per andare a capo...
Perché sarebbe un errore ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.727
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Funzione Scan
« Risposta #14 il: 22 Dicembre 2016, 20:45:22 »
Citazione
Perché sarebbe un errore ?
non un errore, è usato per andare a capo, stavo cercando qualcosa di più "elegante", Print in effetti funziona! :)
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)