![]() |
|
فتح الملف النصي لـ Virement CCP في StringGrid - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : دروس دلفي للمبتدئين (https://delphi4arab.net/forum/forumdisplay.php?fid=13) +--- الموضوع : فتح الملف النصي لـ Virement CCP في StringGrid (/showthread.php?tid=10827) الصفحات:
1
2
|
فتح الملف النصي لـ Virement CCP في StringGrid - larbiparadox - 11-05-2020 باسم الله الرحمان الرحيم السلام عليكم وتقبل الله صيامكم و قيامكم ![]() نظرا لضيق الوقت سأتطرق إلى أهم الامور في المثال : من جهتي أحب البساطة لكي يفهمها أي شخص PHP كود : function Cle(const Type_Cle, Compte_CCP: string): string;ـ أول شيء حساب المفتاح لرقم الحساب ، يوجد موضوع يتحدث على ذلك من هنا * أولا function Cle تقوم بحساب المفتاح RIP أو القديم OLD كمثال تكون الكتابة الكتالي PHP كود : Edit4.Text := Cle('RIP',Edit3.Text) ;الشيء الثاني فتح الملف نصي نصرح به TextFile ثم نعطيه مسار الملف AssignFile(اسم الملف المصرح به, مسار الملف) و بعدها فتحه Reset لكي نقرأ السطر نكتب ReadLn و لكتبنا مرة اخر ReadLn ينقلنا للسطر الثاني وهكذا تواليك ، عذرا أنا أختصر . لتسهيل عملية قراء السطر كتبت الدالة التالية function LireText سرحت بها على أنها record تحتوي على الحساب و المفتاح و الاسم و المبلغ التسريح بالسجل PHP كود : typeالدالة لقراءة السطر PHP كود : function LireText (const LigneTexte: string): TextRecord;مثال الاحضار رقم الحساب من السطر إلى خلية من StringGrid1 PHP كود : StringGrid1.Cells[1,i] := LireText(ligne).COMPTE ; بالنسبة لـ StringGrid1 وضعت في الاحداث في DrawCell ، محذات رقم الحساب و المبلغ إى اليمين ، ومقارنة المفتاح إذا وجد من القديم يتركه بلون أبيض و RIP باللون الاخضر و خاطئ بالاحمر حمل المثال من المرفقات أي إستفسار سأحاول الاجابة عنه في اقرب وقت يرجى تصحيح كما في الصورة 21 إلى 20 ![]() لم الاحظ الخطأ أثناء جلب المفتاح السطر الاول .إلا فيما بعد ، يرجى تصحيحه RE: فتح الملف النصي لـ Virement CCP في StringGrid - medreg - 11-05-2020 بارك الله فيك وصح لفطورك ملاحظة لقد وجدت خطأ صغير لا اعرف انك متعمد حتى تدرك اننا قد راجعن الدرس ام انك غير متعمد والخطأ هو في الدالة if Type_Cle = 'RIP' then begin و if Type_Cle = 'OLD' then begin انت وضعت التعريف الأول في الدالة على أنه RIP والتعريف الثاني على انه OLD والصحيح هو ان التعريف الأول هو OLD والثاني هو RIP هل صح ما اقول ام غلط RE: فتح الملف النصي لـ Virement CCP في StringGrid - larbiparadox - 12-05-2020 شكرا هذا خاص بـ RIP PHP كود : result :=IntToStr( 97 - ((((StrToInt(Compte_CCP) mod 97) * 3 mod 97) + 85) mod 97) ); (12-05-2020, 08:36 AM)larbiparadox كتب : شكرا هذا خاص بـ RIP شكرا على ملاحظة الخطأ ، لم أتعمده خطأ مطبعي المثال المصحح في المرفقات RE: فتح الملف النصي لـ Virement CCP في StringGrid - bouh25 - 13-05-2020 يوجد خطأ عند التنفيذ RE: فتح الملف النصي لـ Virement CCP في StringGrid - medreg - 13-05-2020 السلام عليكم ورحمة الله يا اخي bouh25 صح لفطورك بااك راك مازال صايم مافطرتش هههههههههه راني نقصر برك المرفق يعمل بشكل جيد لقد حملته ونفذته وتم التنفيذ بشكل جيد RE: فتح الملف النصي لـ Virement CCP في StringGrid - ALG2009 - 13-05-2020 تقبل الله صيامكم بالفعل البرنامج يعطي خطأ مع الملف النصي المرفق مع السورس ولكن مالفائده من تحويل الملف النصي إلى البرنامج هل قصد التصحيح أم ماذا؟ ما أعرفه هو تحويل العكس أي إلى ملف نصي ليتم نسخه على القرص المضغوط هل ممكن كيف يتم التحويل من الإكسيل إلى ملف نصي مع التنبيه إلى الحسابات المكررة أريد أن أتعلم كيف يتم التنبيه إلى الحسابات المتكررة كيف يتم ذلك؟ RE: فتح الملف النصي لـ Virement CCP في StringGrid - ALG2009 - 18-05-2020 السلام عليكم أحاول أن أًحول التحويل من ملف الاكسيل إلى ملف نصي تم التحويل من الاكسيل إلى stringGrid والان عندي مشكل مع الـ format() هل من إقتراحات كود : type
TForm3 = class(TForm)
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
ExcelFile,sheet : Variant;
procedure OpenExcelFile;
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
Var
MaxRow, MaxCol,i,j:Integer;
begin
OpenExcelFile;
MaxRow := Sheet.Usedrange.Rows.count ;
MaxCol := sheet.Usedrange.Columns.count;
stringgrid1.RowCount:=maxRow+1;
StringGrid1.ColCount:=maxCol+1;
for I := 1 to MaxCol do
begin
for j := 1 to MaxRow do
begin
stringgrid1.Cells[i,j]:=excelfile.cells[j,i].value;
end;
end;
ExcelFile.workbooks.close;
ExcelFile.quit;
ExcelFile:=Unassigned;
end;
procedure TForm3.Button2Click(Sender: TObject);
var f: TextFile;
i: Integer;
begin
AssignFile(f,'d:\1.txt');
Rewrite(f);
with StringGrid1 do
begin
for i := 1 to RowCount - 1 do
begin
Write(F, '*'+Cells[1, i]);
Write(F, format('%s',cells[2, i]));
Write(F, Cells[3, i]);
Write(F, Cells[4, i]);
Write(F, Cells[5, i]);
writeln(f);
end;
end;
CloseFile(F);
end;
procedure TForm3.OpenExcelFile;
begin
ExcelFile := CreateOleObject('Excel.Application');
ExcelFile.visible:=0;
ExcelFile.Workbooks.Open('C:\Users\HAT\Desktop\book1.xls');
sheet := ExcelFile.WorkSheets[1];
end;
end.RE: فتح الملف النصي لـ Virement CCP في StringGrid - larbiparadox - 18-05-2020 وعليك السلام سأعطيك مثال لوضع الاصفار مثال رقم الحساب : 11111 طوله خمس حروف و رقم الحساب كامل طوله 20 ، ننقص طول المفتاح بقي 18 حرف كيفية ملأ الاصفار متبقية كود : edit1.Text := StringOfChar('0',18-length('11111')) + '11111'استعملنا StringOfChar('0',18) معنها كرر الصفر 18 مرة ، كما يمكنك استعمالها في تكرار الفراغ StringOfChar(' ',18) RE: فتح الملف النصي لـ Virement CCP في StringGrid - ALG2009 - 18-05-2020 (18-05-2020, 07:49 PM)larbiparadox كتب : وعليك السلام بارك الله فيك وجزاك الله خير لقد حاولت سابقا ووضعت هذا الكوج ولكن لم يعمل بإضافة الأصفار يضيف الفرغات فقط لا أدري ما السبب أو هو يعمل مع الفرغات فقط كود : Cells[4, i],' ':27- length(Cells[4, i]),1);وهذا الكود الأخير هل من أي إنتقادات أو الكود يعتبر جيد وأصبحت خبير كود : AssignFile(f,'d:\1.txt');
Rewrite(f);
with StringGrid1 do
begin
for i := 1 to RowCount - 1 do
begin
Write(F,'*00799999',stringofchar('0',10- length(Cells[2, i]))+Cells[2, i],cells[3, i],stringofchar('0',10- length(Cells[5, i]))+Cells[5, i],Cells[4, i],' ':27- length(Cells[4, i]),1);
writeln(f);
end;
end;
CloseFile(F);مع العلم سأحاول وضع شكل العرض للمبلغ لا أدري إن كان سيؤثر أم لا أي ستضتف الفواصل أقصد Format('0,0##.##',stringGrid.Cells[i,j])
في خانة المبلغ لل StringGrid إن كان هناك تأثير سأظطر إلى دالة تحذف الفواصل
بالفعل وقعت في مشكلة حذف الفواصل من المبلغ
RE: فتح الملف النصي لـ Virement CCP في StringGrid - medreg - 20-05-2020 السلام عليكم ورحمة الله تعالى وبركاته كيف يمكنني ان استدعي هذا الملف الى قاعدة بيانات بدلا من المكون stringrid لدي قاعدة بيانات تحتوي على نفس الحقول اي COMPTEو CLE و NOM_PRENOM وMONTANT مع استعمال المكون TTable و DBGrid جزاكم الله عنا كل خير |