Newsgroup: it.comp.lang.visual-basic
Titolo: TextBox: come aggiungere righe di log, in modo "leggero"

Ciao,
sto facendo una serie di operazioni che richiedono un log a video nel form  
dell'applicazione.
Utilizzando un TextBox in modalità multiline, per piccole dimensioni del  
log avevo fatto una cosa del genere:
Text1.Text = Text1.Text & "CodiceBadge modificato:       " & Left("(" &  
codice & ") "
ma quando il numero di righe è lievitato a circa 60000... ecco che la  
soluzione precedente è diventata troppo pesante.
Qualcuno mi sa indicare come fare per eseguire un "append" al TextBox  
anzichè un riassegnamento, oppure un componente diverso per mostrare un  
log a video?
Grazie mille in anticipo,
Piergiacomo
-- 
Using Opera's revolutionary e-mail client: 
http://www.opera.com/mail/


In queste situazioni utilizzo una ListBox
List1.additem
Ciao, Fabrizio 

Pestando alacremente sulla tastiera  "Fabrizio" 
<f.castig...@LOSPAMtin.it> ebbe l'ardire di profferire:

Riesci a farci stare  piů di 32767 elementi?
-- 
If I had it all to do over again, I'd spell creat with an "e".  - Kernighan
News 2002 [v 2.07] / StopDialer / PopDuster - 
http://www.socket2000.com
Akapulce portal: 
http://www.akapulce.net


Non ho posto attenzione al fattore numerico, ma mi domando:
quale essere umano si legge un log di alcune migliaia di righe ? 

Tutti i sistemisti seri.

 un log a video?
Io scrivo tutto su un file, ma memorizzo in una stringa e visualizzo
solo le ultime, per esempio, 100 righe, o 16 Kb.
Eventualmente, su richiesta dell'utente, apro tutto il file in una RTBox.
Questa è parte della roba che uso io:
Sub AddLog(RigaDiLog As String)
      Dim libero As Integer
      Dim Giorno As String, Orario As String
      Giorno = Format$(Now, "dd-mm-yyyy ")
      Orario = Format$(Now, "hh:mm:ss - ")
      libero = FreeFile
      Open DirTemp & Giorno & " log.txt" For Append As #libero
      Print #libero, Orario & RigaDiLog
      Close libero
      TestoLog = Right$(TestoLog, 16384) & vbCrLf & Orario & RigaDiLog
      rtbLog.Text = TestoLog
      rtbLog.SelStart = Len(rtbLog.Text)
End Sub
All'avvio carico il log esistente, se c'è:
Sub CaricaLogEsistente()
      Dim libero As Integer
      Dim TestoLogEsistente As String
      Dim Giorno As String
      Giorno = Format$(Now, "dd-mm-yyyy ")
      libero = FreeFile
      If Dir$(DirTemp & Giorno & " log.txt") <> "" Then
            Open DirTemp & Giorno & " log.txt" For Input As #libero
            TestoLogEsistente = Input(LOF(libero), #libero)
            Close libero
            TestoLog = Right$(TestoLogEsistente, 16384)
      Else
            TestoLog = "Log del giorno corrente non trovato."
      End If
      rtbLog.Text = TestoLog
End Sub
Appropo': se Lokar legge questo post, sappia che sì, *ERA*
una cazzata immonda. Lui forse ricorderà di cosa parlo.
Bye, G. 


log a video, migliaia ? 

 Tutti i sistemisti seri.
Sbagliato: i sistemi SERI utilizzano LogParser Toolkit o altri strumenti 
simili per analizzare file di log grossi... leggere decine di migliaia di 
righe di log non ha senso...
Te lo dice uno che analizza file ascii da 250 MB/giorno (file di log 
prodotti dal mail server Mdaemon)
Ciao
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca
 

 quale essere umano si legge un log di alcune migliaia di righe ? 
Ok, ma nel nostro caso evidentemente ne ha bisogno...
-- 
"E=Mc^5...nahhh...E=Mc^4...nahh...E=Mc^3...ah, the hell with it."


 log a video?
1) Alternativa: un list qualsiasicosa gestito decentemente
2) Soluzione alla domanda: imposti SelStart = len(Text1.Text), poi fai 
SelText="CodiceBadge modificato:       " & etc. etc.

Grazie a tutti per i consigli.
Effettivamente avevo fatto presente al cliente che non sarebbe stato di  
molta utilità avere a video una marea di righe di log, ma lui ha  
insistito... e se vuole così, è lui che paga e per me va bene ;)
Sono arrivasto comunque ad un compromesso con il cliente, a video verranno  
mostrati solo i log "importanti", su di un file tutto il log completo (e  
poi se vuole preme un pulsante e lo apre con notepad).
Quindi ho utilizzato la lista.
Grazie di nuovo.
