stringgrid e birden fazla txt dosya içerisindeki parasal değerleri yazdırmak istiyorum. dosyaların formatları şu şekilde
S1SUM03122018.txt
S2SUM02102018.txt
S3SUM14112018.txt
S4SUM15122018.txt
S5SUM16122018.txt
S1SUM.. S5SUM olarak nitelendirilen isimler başka bir formda 5 farklı stringin toplamları olduğu için bu şekilde isimlendirme yaptım. geriye kalanda zaten göreceğiniz üzere gün/ay/yıl şeklindedir.
bütün bu toplamları tek bir stringgride yazdırmak istediğimde aşağıdaki kodlarını gördüğünüz butona basıyorum. gün ve ay dağılımına göre stringgriddeki 31 x 12 alanda her parasal değer doğru bir şekilde yerine oturuyor.
fakat her butona basışımda sadece bir tabloya ait txtler okunuyor. Yani S1....txt ler bir kez daha bastığımda sadece S2....txt olanlar... bir kez daha bastığımda sadece S3.....txt olan dosyalar.. Yani her basışımda stringgrid temizleniyor ve o şekilde veri ekleniyor. Ben stringgrid temizlenmesini istemiyorum. Sadece tek seferde tüm S1,S2,S3,S4,S5.txt dosyaların okunup stringgride yazılmasını istiyorum. Bir çok yöntem denedim ancak başaramadım.Bir yerde mantık hatası yaptığımın farkındayım ancak günlerdir çözemiyorum. Kullanmış olduğum prosedürüde butondan sonraki kodda paylaştım. Yardımcı olursanız çok sevinirim. Teşekkürler
BUTON;
Kod: Tümünü seç
procedure TForm2.Button1Click(Sender: TObject);
var
i,j,ay:integer;
dt:tdatetime;
begin
tt:=StrToDate('01/10/2018');
for I := 1 to 365 do
begin
if no > 5 then
begin
no:=1;
end
else
begin
Ay:=StrToInt(FormatDateTime('mm', tt));
ay:=ay-1;
LoadStringGrid2(StringGrid1,StrToInt(FormatDateTime('dd', tt)),Ay,'S' + IntToStr(no) + 'SUM' + FormatDateTime('dd', tt) + FormatDateTime('mm',tt) + FormatDateTime('yyyy', tt) + '.txt');
tt:=IncDay(tt,1);
end;
end;
no:=no+1;
PROSEDÜR;
Kod: Tümünü seç
procedure LoadStringGrid2(StringGrid: TStringGrid; Cell:integer; mm:integer; const FileName: TFileName);
var
f: TextFile;
iTmp: Integer;
strTemp: String;
begin
AssignFile(f, FileName);
{$I-}
Reset(f);
with StringGrid do
begin
Readln(f, strTemp);
Readln(f, strTemp);
Readln(f, strTemp);
Cells[mm,cell] := strTemp;
end;
CloseFile(f);
{$I+}
end;