Autore Topic: Assegnare una libreria ad un progetto in modo dinamico.  (Letto 1007 volte)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.155
  • Tonno verde
    • Mostra profilo
Assegnare una libreria ad un progetto in modo dinamico.
« il: 13 Luglio 2020, 16:04:24 »
Mi riferisco a una discussione privata con Hans Lehmann autore principale di Gambas Book e a questa discussione:
https://lists.gambas-basic.org/pipermail/user/2018-October/065687.html

Allego un progettino che dimostra come assegnare in modo dinamico una libreria ad un progetto Gambas, vale a dire senza doverlo fare dalla finestra progetto.

Questo invece è il codice interno alla libreria nel modulo Mat:
Codice: [Seleziona]
Export

Public Function ReturnAddString(value As String[]) As String
' Ritorna la somma dei numeri 'stringa' come una stringa formattata currency
  Dim sCurr As String
  Dim iCurr As Long

  For i As Integer = 0 To value.Max
    sCurr = ReturnStringInteger(value[i])
    iCurr += CLong(sCurr)
  Next
  Return Format((iCurr / 100), "$,0.00")

End

Private Function ReturnStringInteger(value As String) As String
' Ritorna una stringa in forma di numero intero
  value = Trim(Replace(value, "€", ""))
  value = Replace(value, ".", "")
  value = Replace(value, " ", "")
  value = Replace(value, ",", "")
  Return value

End

 :ciao:
« Ultima modifica: 14 Luglio 2020, 16:53:57 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #1 il: 13 Luglio 2020, 17:08:28 »
Lanciando il programma, appare una finestra con il messaggio di errore: "Unable to proceed".   :-\
« 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.155
  • Tonno verde
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #2 il: 13 Luglio 2020, 17:16:15 »
Lanciando il programma, appare una finestra con il messaggio di errore: "Unable to proceed".   :-\
A me funziona bene  :-\
Viene dal modulo MMain potresti per cortesia inserire uno stop all'inizio e dirmi dove ti da errore?
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #3 il: 13 Luglio 2020, 17:19:21 »
Osservando in modalità "passo-passo", l'errore si scatena qui:

Codice: [Seleziona]
sLocalPath = User.Home &/ ".local/share/gambas3/lib"
If Not Exist(sLocalPath) Then Try Mkdir sLocalPath
  If Error Then
    Message.Error(sMessage)
    Return
  Endif
« Ultima modifica: 13 Luglio 2020, 17:22:13 da vuott »
« 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.155
  • Tonno verde
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #4 il: 13 Luglio 2020, 17:21:51 »
Osservando in modalità "passo-passo", l'errore si scatena qui:

Codice: [Seleziona]
If Not Exist(sLocalPath) Then Try Mkdir sLocalPath
  If Error Then
    Message.Error(sMessage)
    Return
  Endif

Ma ce ne sono tre uguali, puoi essere più preciso  :)
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #5 il: 13 Luglio 2020, 17:23:02 »
Sì, scusami, ho integrato le righe di codice sopra.
« 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #6 il: 13 Luglio 2020, 17:24:23 »
Ad ogni modo io non ho la cartella "/gambas3" nel percorso "..../.local/share/"
« Ultima modifica: 13 Luglio 2020, 17:25:07 da vuott »
« 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.155
  • Tonno verde
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #7 il: 13 Luglio 2020, 17:27:13 »
Ad ogni modo io non ho la cartella "/gambas3" nel percorso "..../.local/share/"
A ecco dove sta l'inghippo, ti andrebbe di provare ad aggiungerla e vedere se funziona, anzi aspetta che aggiorno il codice.

Grazie  :-*
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.155
  • Tonno verde
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #8 il: 13 Luglio 2020, 17:33:40 »
Ho aggiornato il codice, io ho la cartella gambas3 per via del software della farm e non ho pensato che altri potrebbero non avercela.

Ti ringrazio molto
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #9 il: 13 Luglio 2020, 17:40:04 »
Ovviamente quando si perde tempo in altri progetti, anziché concentrarsi sula Macchina del Tempo !

« 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #10 il: 13 Luglio 2020, 17:43:07 »
Ho aggiornato il codice

Ora funziona.

Potresti creare un apposito paragrafo all'interno di questa pagina ?
   https://www.gambas-it.org/wiki/index.php?title=Importare_ed_utilizzare_librerie_.gambas
« 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.155
  • Tonno verde
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #11 il: 13 Luglio 2020, 17:48:31 »
Ho aggiornato il codice

Ora funziona.

Potresti creare un apposito paragrafo all'interno di questa pagina ?
   https://www.gambas-it.org/wiki/index.php?title=Importare_ed_utilizzare_librerie_.gambas

Si lo faccio molto volentieri.  :)

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

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.155
  • Tonno verde
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #12 il: 13 Luglio 2020, 17:50:37 »
Ovviamente quando si perde tempo in altri progetti, anziché concentrarsi sula Macchina del Tempo !



 :D

Ma per bere una birra hai bisogno della macchina del tempo  :-\
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #13 il: 13 Luglio 2020, 18:19:34 »
Ma per bere una birra hai bisogno della macchina del tempo  :-\

...LA chiami "birra" tu ?   :bad:
« 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.155
  • Tonno verde
    • Mostra profilo
Re:Assegnare una libreria ad un progetto in modo dinamico.
« Risposta #14 il: 14 Luglio 2020, 15:11:37 »

Potresti creare un apposito paragrafo all'interno di questa pagina ?
   https://www.gambas-it.org/wiki/index.php?title=Importare_ed_utilizzare_librerie_.gambas

A gentile richiesta, ho aggiunto il paragrafo.
Purtroppo si nota subito la diversa proprietà di linguaggio, perdonatemi.
Spero vada bene, sono a disposizione per eventuali cambiamenti.

Ho anche aggiornato il progetto del primo post perché conteneva ancora i commenti di quando volevo chiedere il vostro aiuto perché non capivo come mai Object.Call non accettava i parametri, (le famose parentesi quadre).

 :ciao:
« Ultima modifica: 14 Luglio 2020, 15:12:43 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro