Ciao a tutti, avrei una domanda per i più esperti di Gambas.
Sto utilizzando questo codice per leggere un processo:
Dim sStr As String
Read #$hProcess, sStr, -256
poi il codice prosegue a fare quello che deve.
La domanda è questa, il valore -256 va ad indicare di leggere blocchi da 256 byte, che vantaggi può dare se aumentato o che problemi crea se troppo basso.
Nel mio programma vado ad analizzare le stringhe prodotte da comandi eseguiti in bash con output anche molto lunghi e volevo capire come ottimizzarli
Grazie in anticipo
Si potrebbe affermare che il segno meno davanti al numero di byte da leggere ti garantisce dallo sforamento, ad esempio se io devo leggere un processo come questo:
Private myprocess As Process
Public Sub Button1_Click()
myprocess.Begin
Write #myprocess, "test"
myprocess.Send
End
Public Sub Form_Open()
myprocess = Exec ["cat"] For Read Write As "rr"
End
Public Sub rr_read()
Dim sStr As String = Read #myprocess, -40
Print sstr
End
Essendo myprocess di 4 byte se non mettessi il meno davanti a 40 otterrei un errore.
Il meno ti garantisce la lettura fino all'ultimo byte e non oltre.
Ma l'esperto in materia è vuott, spero vorrà completare il ragionamento.
:ciao:
Grazie per le risposte, ora il concetto mi è più chiaro.
Quindi in linea teorica più è grande il numero e meglio è....
Giusto per farvi capire i miei dubbi, mediante un processo eseguo un terminale a cui passo il comando:
dnf list |grep nomepacchetto
dopo di che leggo il processo e quindi analizzo l'output per estrarre il nome del pacchetto, eliminano versione e repo in cui si trova e lo mando ad una listbox.
Per ricerche abbastanza definite il tutto funziona. Ma se la ricerca è vaga, tipo ....grep lib, con tante voci, vengono fuori degli sbagli cioè qualche nome non viene inserito nella listbox, o per ricerche consecutive in cui ricerco installati, non installati e aggiornamenti con comandi inviati in automatico appena termina quello precedente, alcuni nomi della prima ricerca finiscono sulla seconda.
Non so se sono riuscito a spiegarmi, in caso contrario mi scuso :)