alessandro_ Inserito: 10 ottobre 2004 Segnala Share Inserito: 10 ottobre 2004 Ciao a tuttiSpero mi possiate veramente aiutare...Mi si chiede di amplliare un progetto realizzato con Mpro 2.1, Obbiettivo:realizzare (mediante una maschera richiamabile di inserimento dati) la memorizzazione su di un file (.txt) di una decina di campi come storico di carico grano in un silos. e facendo si che ad ogni inserimento i dati precedentemente inseriti si spostino verso il basso del txt lasciando spazio all'ultimo inserimento effettuato in testa al file.QUALCHE BUON ANIMA non avrebbe in giro qualcosina di esempio per ottenere tutto cio???o meglio ancora qual'è l'istruzione in power vb per traslare tutti i dati del txt verso il basso di modo che il successivo inserimento non sovrascriva quello precedente?? (tutto il resto me lo sono già realizzato! ho anche trovato l'istruzione for append ma che mi mette sempre l'ulitmo salvataggio in coda!)Vi Ringrazio A priori anche solo per il semplice interessamento.UN DISPERATO!(che di power vb se ne intende assai poco!)Alessandro Fedrighini Link al commento Condividi su altri siti More sharing options...
micheleb Inserita: 11 ottobre 2004 Segnala Share Inserita: 11 ottobre 2004 Ciao,da quello che ricordo di VB, dovresti innanzitutto aprire il file in modalità append come già del resto fai.A questo punto occorre che tu vada ad appoggiare il contenuto del file txt in una variabile stringa.Fatto ciò, il tuo prog vb è in grado di effettuare tutte le operazioni possibili su di una stringa di caratteri. Agendo quindi con le dovute funzioni, dovresti posizionarti all'inizio del file, aggiungere una riga vuota, ritornare all'inizio del file ed inserire la tua nuova stringa.Chiudi il file con l'istruzione 'Close <numerofile>'.Purtroppo, utilizzando troppo poco VB non so essere più preciso dandoti direttamente il codice.Facci sapere se hai sortito qualcosa... Link al commento Condividi su altri siti More sharing options...
alessandro_ Inserita: 12 ottobre 2004 Autore Segnala Share Inserita: 12 ottobre 2004 (modificato) x michelebintanto grazie (ne faccio tesoro).X niente facile la cosa visto che sono 10 linee da salvare e poi traslare.Si può salvarae l'intero contenuto di un file di testo in un'unica stringa??e le dimensioni??ed in secondo luogo......non so come si fa!!! :-(Signori mi rimetto alla Vs. clemenza....(30 visite ed 1 solo aiuto...sigh!)alessandro Fedrighini Modificato: 12 ottobre 2004 da alessandro_ Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 12 ottobre 2004 Segnala Share Inserita: 12 ottobre 2004 Non so cosa sia Mpro, ma io farei così:Ogni volta che devi scrivere su "pippo.txt":1) Cancelli (se esiste) "pippo.bak"2) Rinomini "pippo.txt" in "pippo.bak"3) Crei un nuovo file "pippo.txt" 4) Mandi il tuo output in "pippo.txt" 5) Apri "pippo.bak"6) Leggi i dati di "pippo.bak" e li scrivi su "pippo.txt"7) chiudi i filesTutto questo ha dei limiti (solo di tempo) in caso di files molto lunghi. Link al commento Condividi su altri siti More sharing options...
alessandro_ Inserita: 13 ottobre 2004 Autore Segnala Share Inserita: 13 ottobre 2004 Soluzione alquanto interessante.....non mancherò di provarla, devo solo trovare i comandi in power vb per gestire files.Grazie mille Link al commento Condividi su altri siti More sharing options...
micheleb Inserita: 13 ottobre 2004 Segnala Share Inserita: 13 ottobre 2004 Altro metodo che puoi utilizzare senza dover necessariamente accedere al file con il codice è quello di avviare tramite sempre vb, una serie di funzioni SENDKEYS con le quali puoi agire su un'applicazione esterna (notepad) al vb ed interagire con essa passando come parametri alla funzione i tasti che occorre pigiare per aggiungere la riga nuova e salvare poi il file.Ho notato che quando apri un file con il notepad, il cursore si posiziona automaticamente al riga 1 colonna 1. Quindi, in linea di massima, basta mandare un SENDKEYS con il codice per il tasto ENTER in modo da aggiungere una riga. Un altro con il codice per il tasto freccia "su" in modo da riportare il cursore alla prima riga. A questo punto un'altra funzione con il testo da scrivere sulla riga ed infine un'altra con la combinazione di tasti CTRL+S per salvare il file. La funzione finale sarà una combinazione di tasti ALT+F4 in maniera da chiudere il notepad.Non è l'eleganza fatta codice e per questo forse i più esperti in VB mi ucciderebbero però direi che dovrebbe funzionare. Spero magari di vedere del codice più elegante da parte di qualche collega. Se vuoi andare sul sicuro forse ti conviene rivolgerti al carissimo Livio Orsini. Link al commento Condividi su altri siti More sharing options...
alessandro_ Inserita: 14 ottobre 2004 Autore Segnala Share Inserita: 14 ottobre 2004 (modificato) grazie per i Vs. preziosi consigli, Ma ho bisogno ancora di Voiobbiettivo sulla pressione di un pulsantino aprire un file di testo posizionandolo in primo piano.istruzioni in power vb, che ho trovato:id: shell("notepad",1) dove 1 sta per normal widows with focus e va benone.risultato: ottengo l'apertura di un file di testo nuovo e senza nome (in primo piano).ORA A ME SERVIREBBE...capire la sintassi per far si che mi apra, ivece di un documento vuoto, un file txt preesistente in un percorso specifico es. c:\pippo\pluto\paperino.txt.Come faccio ad aprire paperino???? (lettura e scittura)Sempre grazie in anticipo a tuttiAlessandroX Michele b.:"Non è l'eleganza fatta codice e per questo forse i più esperti in VB mi ucciderebbero .." visto la carestia di esperti...qualsiasi cosa che funziona va Benone...grazie ancora Modificato: 14 ottobre 2004 da alessandro_ Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 14 ottobre 2004 Segnala Share Inserita: 14 ottobre 2004 Se guardi gli esempi del progetto on line "Scada in VB" (in evidenza sulla Home) troverai la gestione dellos torico degli allarmi fatta all'incirca come chiedi. Poi non so se è adattabile a Mpro 2.1- La gestione è completa: verifica anche la lunghezza del file *.txt, emette avvisi se si supera una soglia, si può salvare e cancellare. Link al commento Condividi su altri siti More sharing options...
dago_ Inserita: 14 ottobre 2004 Segnala Share Inserita: 14 ottobre 2004 Non conosco PowerVB, immagino che sia un qualcosa attacato la' ad un qualche scada.Comunque il VB una sbesasciata di questo tipo potrebbe andar bene.In ogni caso, visto la carestia di esperti... ,a caval donato non si guarda nelle orecchie. Private Sub Command1_Click()Dim NomeFile As StringDim NumeroFile As LongDim Buffer As String'On Local Error GoTo ErroreNomeFile = "c:\dati.txt"NumeroFile = FreeFile'questo legge tutto il file e salva il contenuto nella variabile BufferOpen NomeFile For Binary As NumeroFile Buffer = Space(LOF(NumeroFile)) Get #NumeroFile, , BufferClose NumeroFile'apri il file nella modalita che ti serve, scrivi il tuo dato più il contenuto letto in precedenza'ad esempio il ritorno a capo l'ho aggiunto io a caso, oppure potresti utilizzare Write al posto di Input'certo e' che lavorare con file di testo non e' proprio il massimo.Open NomeFile For Output As NumeroFile Print #NumeroFile, "Questa e' la riga nuova" + vbCrLf + BufferClose NumeroFileExit SubErrore:If Err = 53 Then MsgBox "Impossibile trovare il file: " + NomeFile +" e aggiungo anche che Cip&Ciop sono due fottutissimi scoiattoli !, vbCritical, "Errore"Else MsgBox "Errore: " + Str(Err), vbCritical, "Errore"End IfEnd Sub Link al commento Condividi su altri siti More sharing options...
alessandro_ Inserita: 19 ottobre 2004 Autore Segnala Share Inserita: 19 ottobre 2004 scusate il mio silenzio....Ma devo fare fronte ad altre urgenze! la questione tuttavia Rimane in sospeso, non mancherò di mettervi al corrente dei risultati ottenuti..(sempre che ce ne siano...sigh!).Ringrazio tutti per il tempo dedicatomiFedrighini Alessandro Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora