//Funzione che ti restituisce il contenuto del file
function MyLoadFromFile(filename : string) : string;
var
app : TStringList;
ret : string;
begin
if FileExists(filename) then
begin
app := TStringList.Create;
app.LoadFromFile(filename);
ret := app.text;
app.Free;
app:=nil;
end else begin
ret := '';
end;
result := ret;
end;
//nel tuo sorgente usi la funzione cosė
var testo : string;
...
testo := '';
testo := testo + MyLoadFromFile('nome_file1_con_percorso.txt') + System.LineEnding;
testo := testo + MyLoadFromFile('nome_file2_con_percorso.txt') + System.LineEnding;
...
testo := testo + MyLoadFromFile('nome_fileN_con_percorso.txt') + System.LineEnding;
Spero l'esempio sia chiaro.
ho risolto cosė:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Grids, StrUtils,math;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
const
MAX_RIGHE = 50;
MAX_COLONNE = 7;
var
riga, colonna, rigaInStringGrid: Integer;
valore: string;
i: Integer;
fileToRead: TextFile;
selectedFile: string;
colonne: TStringArray;
begin
// Creare TOpenDialog dinamicamente
with TOpenDialog.Create(nil) do
try
Title := 'Seleziona file di testo';
Filter := 'File di testo (*.txt)|*.txt';
Options := [ofAllowMultiSelect];
{ Mostra la finestra di dialogo e leggi i file selezionati }
if Execute then
begin
rigaInStringGrid := 2; // Inizia dalla prima riga nella StringGrid
for i := 0 to Files.Count - 1 do
begin
selectedFile := Files[i];
AssignFile(fileToRead, selectedFile);
Reset(fileToRead);
riga := 1;
while not Eof(fileToRead) and (riga <= MAX_RIGHE) do
begin
ReadLn(fileToRead, valore);
// Utilizza SplitString per separare il testo in singole colonne
colonne := SplitString(valore, ',');
// Assegna i valori alle celle della StringGrid
for colonna := 1 to Min(MAX_COLONNE, Length(colonne)) do
StringGrid1.Cells[colonna , rigaInStringGrid -1] := colonne[colonna-1 ];
Inc(riga);
Inc(rigaInStringGrid);
end;
CloseFile(fileToRead);
end;
end;
finally
Free; // Liberare la memoria del TOpenDialog
end;
// Chiamata necessaria per far funzionare l'applicazione
Application.Run;
end;
end.