Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Delphi] Trasformare una stringa in array

    Ciao a tutti.
    Premetto che sono alle prime armi e che non capisco molto le terminologie specifiche... E che probabilmente il mio problema è una stupidaggine...

    Io ho caricato un file e ho salvato in una stringa la riga che mi interessa di quel file... Ora devo dividerlo parola per parola e metterlo in un'array...
    Questo perchè stò creando una funzione e ogni parola deva andare su un TEdit diverso (non riesco a modificare il TEdit direttamente dalla funzione...).
    Mi serve sapere che comando devo usare o codice devo inserire per dividere le parole.

    Grazzie mille,
    Ciao a tutti.

    Uccio.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Puoi usare la classe TStringList.

    Una volta creata un'istanza di questa classe, imposti il carattere che corrisponde allo spazio nella proprietà DelimiterChar; successivamente, assegni il testo da "spezzare" alla proprietà Text dell'oggetto; infine, nella proprietà Items troverai le parole già suddivise, mentre Count ti restituisce il numero di parole.

    E' chiaro che ciò funziona seguendo un semplice algoritmo di "splitting" basato sulla separazione con spazi delle parole: se intendi fare uso di punteggiatura o altri casi più particolari, è necessario un algoritmo più complesso.

    Guarda eventualmente anche questa implementazione.

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

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

  3. #3
    Girovagando per l'archivio del forum ho trovato una discussione in cui facevi un esempio a un utente che aveva più o meno il mio stesso problema... Non ho potuto non notare che hai detto: " Potresti sfruttare una funzionalità (per certi versi nuova, aggiunta a Delphi 7) della classe TStringList." Il problema è che io uso il "vecchio" delphi 4... E non ho le propietà DelimiterChar e Items...
    Sono problemi grossi?

  4. #4
    Un'altra cosa... Io ho dei TMaskEdit io cui devono essere inseriti SOLO dei numeri. Come faccio a impedire che vengano inseriti altri caratteri? E se si può posso fare in modo che quando vengono inseriti altri caratteri la propietà Text diventi vuota?

  5. #5
    Originariamente inviato da Uccio_Duri
    Un'altra cosa... Io ho dei TMaskEdit io cui devono essere inseriti SOLO dei numeri. Come faccio a impedire che vengano inseriti altri caratteri? E se si può posso fare in modo che quando vengono inseriti altri caratteri la propietà Text diventi vuota?
    Problema risolto!!!

    Dato che ogni file lo decido io (e non l'utente) e che il numero il questione si riferisce alla riga del file ho usato questo codice:

    codice:
    function ValoriOk(EditBox: TMaskEdit; Max: Integer): boolean;
    var
      i : Integer;
    begin
      i := 0;
      Result := False;
      repeat
        begin
          if EditBox.Text = IntToStr(i) then
          begin
            Result := True ;
          end;
          if EditBox.Text = '0' + IntToStr(i) then
          begin
            Result := True ;
          end;
          i := i + 1;
        end;
      until i = Max;
    end;
    Dove Max è il massimo numero di righe (una costante che assegno io) e EditBox e il TMaskEdit che viene modificato... Poi ho messo:

    codice:
    if ValoriOk(EditBox, Max) = False then
        begin
          EditBox.Text := '';
        end
      else
      begin
    ...
    Che ne dite?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.