Newsgroup: it.comp.lang.delphi
Titolo: Richiesta di aiuto

Ciao a tutti,
non vi scandalizzate per la domanda ma sono un principiante.
Devo leggere una riga di dati scritta in ASCII in un file (sequenziale) in
questo modo
25,35,45,65,75
21,31,41,51,61
13 23 33 43 53
ho il problema di leggere una riga per volta ma con cinque dati diversi cioè
ognuno contenuto in una variabile di tipo integer. I dati possono essere
separati da spazio o da virgola .
Grazie per l'aiuto .
Arturo Anniballo

 separati da spazio o da virgola .
Per leggere dal file ASCII guarda nell'help i comandi
readln, assignfile e closefile (c'è un esempio d'uso).
Una volta caricato in una variabile il testo di una riga puoi cercarti i
singoli
valori usando le funzioni POS e COPY; pos fà ricerce nel testo mentre
copy ti estrae sottostringhe di testo.
I comandi di cui hai bisogno sono questi, se ti serve posso farti degli
esempi.
Mirko
--
--------------------------------------------
Mirko Guidolin
COMUNE DI RESANA
Provincia di Treviso
Servizio Elaborazione Dati
--------------------------------------------
levare eventuali underscore per rispondere

Prova questa, farà anche schifo ma funziona, e puoi inserire anche più di
cinque interi per riga.
sembrava tanto uno degli esercizi che mi davano da fare durante
un'iterrogazione
di informatica in terza istituto, perciò l'ho fatta in cinque minuti.
Function FindNumber(MyFile: String): TStringList;
Var
  f: TextFile;
  TempList: TstringList;
  Buf: String;
  Temp: String;
  i,j: integer;
Begin
  Result:= TStringList.Create;
  TempList:= TStringList.Create;
  AssignFile(f, MyFile);
  Reset(f);
  While Not Eof(f) do
    Begin
      Readln(f, Buf);
      i:= 1;
      For j:= 1 to Length(buf) do
        Begin
          Temp:='';
          repeat
            Temp:= Temp+Buf[i];
            Inc(i);
            if (Temp[1] = ';') or (temp[1] = ' ') or (Temp[1] = ',') then
              Delete(Temp,1,1);
          until (Buf [i] = ';') or (Buf [i] = ' ') or (Buf [i] = ',')
                or (i >= Length(Buf)+1)  ;
          TempList.Add(Temp);
        end;
    End;
  For i:= 0 to TempList.count -1 do
    begin
    Temp:= TempList[i];
    if (Temp[1] >= #48) and (Temp[1] <= #57) then Result.Add(Temp);
    end;
  CloseFile(F);
End;
se hai bisogno in info chiedi pure.
--
Gna...@Wappi.com

ed ecco come farei io:
[in questo caso mando i numeri letti in una listbox.
Nel tuo caso basta  fare  un   strtoint(t) per convertirli in integer e poi
conservarli]
---------------------
var f:textfile;
    s,t:string;
    a:integer;
begin
        assignfile(f,nome del file);
        reset(f);
        while not(eof(f)) do
          begin
                a:=1;
                t:='';
                readln(f,s);
                while a<=length(s) do
                   begin
                        if (s[a]=',') or (s[a]='.')
                           then
                                               begin
                                                listbox1.Items.Append(t);
{in t e' memorizzato l'integer voluto}
                                                t:=''
                                               end
                           else t:=t+s[a];
                        inc(a);
                   end;
                listbox1.Items.Append(t)  {in t e' memorizzato l'integer
voluto}
          end;
        closefile(f)
end;
----------------