Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Delphi Tstringlist

    Salve a tutti. Come da oggetto ho delle difficoltà con tstringlist, ovvero nn riesco ad eseguire una data operazione e non ho trovato niente di chiaro sul web quindi eccomi qui. Dunque alla fine è una cosa, credo, piuttosto semplice, ma che nn ho mai fatto. Praticamente carico un file ,txt o ascii, su questa lista, ovvero gli assegno il suddetto file, dopo questo vorrei catturare su una singola riga caratteri per esempio



    francesco 30/07/81 Milano
    luca 30/07/81 Milano
    etc..
    30 caratteri consentiti per il nome separatore("")
    10 caratteri consentiti per la data separatore("")
    15 caratteri consentiti per il luogo

    Come dovrei fare per catturare le singole voci cosi da poterle trasferire come record in campi di un database(nome, data,luogo)??
    Spero di essere stato abbastanza chiaro, grazie a tutti ciauz!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Se hai scritto del codice, postalo...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    no no alka, ancora non ho scritto niente. Diciamo che il mio metodo è un po strano ovvero prima faccio tutto a grandi linee concettualmente, e poi scrivo il codice.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Dalton
    no no alka, ancora non ho scritto niente. Diciamo che il mio metodo è un po strano ovvero prima faccio tutto a grandi linee concettualmente, e poi scrivo il codice.
    Sì, ma allora definisci cosa non riesci a fare... non sai come caricare il file? non sai come ottenere una stringa riga per riga? non sai come estrarre informazioni dalla singola stringa? hai letto la guida in linea in merito a TStringList?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5

    Delphi Tstringlist delimiter

    procedure TForm1.Button1Click(Sender: TObject);
    var
    lista:TStringList;
    lista1:TStringList;
    begin
    lista:=tstringlist.Create;
    lista1:=tstringlist.Create;
    opendialog1.Filter:='File (*.*)|*.*';
    opendialog1.Execute;
    lista.LoadFromFile(opendialog1.FileName);
    lista1.Delimiter :='!';
    lista1.QuoteChar :=' ';
    lista1.DelimitedText :=lista.Text;
    listbox1.Items.AddStrings(lista1);
    end;
    Questo è il codice che ho scritto ecco il risultato:
    da :I!061110!1!00.00!0!000000000!REPARTO 1

    a:
    I
    061110
    1
    00.00
    0
    000000000
    REPARTO
    1

    Il problema sta nel fatto che dopo lo spazio mi porta il testo alla riga successiva della lista come devo fare per far si che il testo separato da spazi compaia sulla stessa riga??grazie a tutti ciao!!

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Scusa, ma non ho capito nulla di ciò che deve fare la tua applicazione...

    Provo a cercare di capire... si tratta di aprire un file di testo, ottenere tutti i campi separati di una singola riga separandoli in elementi differenti e riportarli all'interno di una ListBox, ma mantenendo tutti i dati della riga assieme?

    Ma in tal caso, non fai prima a caricarli così come sono?

    Non comprendo qual è il risultato finale da ottenere.

    Ci sono comunque tantissimi errori nel tuo codice, a partire dai "memory leak" derivanti dal fatto che allochi memoria creando oggetti TStringList ma non ne garantisci la distruzione attraverso il metodo Free, magari con un costrutto try...finally.

    E ancora, non c'è alcuna verifica sul valore di ritorno del metodo Execute per la finestra di dialogo... se l'utente annulla la selezione, di fatto non selezionando alcun file, il programma va in errore.

    Ci sono insomma molte correzioni da fare, alcune riguardanti le basi della programmazione in Delphi che dovrebbero essere già assodate prima di cimentarsi con la costruzione di qualsivoglia applicazione, più o meno complessa.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Ho scritto del codice solo perchè volevo che capiste quello che avevo in mente per questo è cosi scarno.Cmq mi spiego meglio, dunque io ho un file ascii che ha dei diversi campi separati da punto esclamativo (!) es:

    I!061110!1!00.00!0!000000000!REPARTO 1
    ora quando io eseguo il codice, postato precedentemente, nell'ultimo campo (REPARTO 1) invece di stampare
    REPARTO 1
    in una singola riga lo divide come se lo spazio fosse un separatore e stampa in 2 righe
    REPARTO e poi
    1
    Spero di essere un pò piu compresibile. grazie tante alka ciao!

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Perché hai impostato uno spazio come QuoteChar? :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    no scusami anche in qotechar c'è il carattere !.

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Dalton
    no scusami anche in qotechar c'è il carattere !.
    Hai letto qual è lo scopo di QuoteChar nella Guida in linea? :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.