فيما يتعلق بحفظ حقل في ملف نصي
#24
(15-02-2016, 06:05 PM)medreg كتب :
(15-02-2016, 12:23 PM)bassem_43 كتب : و فيك بركة اخي
RIP ليس لدي فكرة عن طريق حسابه يمكنك البحث عن الالغوريثم الخاص به في غوغل وترجمه الى دالة كما فعلنا فوق.
لكن اظنك لن تحتاجه في برنامجك لانهم يقبلون فقط المفتاح CLE عند انشاء الملف النصي لانك لو ادخلت CCP و RIP كما في الشكات الجديدة فسيظهر خطا في ملف النصي للاجور ولن يقبلوه منك في مركز البريد .
الحل CCPو CLE المحسوب.
بالتوفيق
بورك فيك
وماذا عن كود أنشاء الملف النصي
وقراءته
كود انشاء الملف النصي
PHP كود :
procedure TForm3.BitBtn3Click(Sender: TObject);
var
 
 StringList: TStringList;
 
  lig :string;
 
  i,x :integer;
 
  y:Real;

begin
  adotable1
.close;
 
 ADOQuery1.close;
 
 ADOQuery2.close;
 
 adotable1.open;
 
 ADOQuery1.open;
 
 ADOQuery2.open;
 
 ADOQuery1.active:=false;
 
 ADOQuery2.active:=false;
 
 ADOQuery1.active:=true;
 
 ADOQuery2.active:=true;

 
 StringList:= TStringList.Create;
 
 try
   edit5
.text:= ExtractNumberInString(cxDBCurrencyEdit1.text);
 
   lig:= ('*'+'00000000'+Format('%.10d',[strtoint(edit4.text)])+Format('%.2d',[strtoint(edit7.text)])+Format('%.13d',[strtoint(edit5.text)])+Format('%.7d',[strtoint(cxDBSpinEdit1.text)])+FormatFloat('00', strtofloat(edit2.Text))+edit3.Text+'              '+'0');
 
  
    StringList
.Append(lig);
  //هدا الكود لانشاء راس الملف النصي الدي يحتوي على تاريخ الراتب الشهري وعدد المستفيدين من الراتب و بعض المعلومات

 
   //**************************//
 
    و هدا الكود لانشاء بقية الملف النصي ويدرس بعض الاحتمالات الخاصة بالفاصلة 
    
//*************************//
 
      ADOTable1.DisableControls;
 
     ADOTable1.First;
 
   while not ADOTable1.Eof do
 
   begin
      Edt1
.Text:= ADOTable1.FieldByName('net_a_payer').AsString;
 
     y:= strtofloat(Edt1.Text)- (int(strtofloat(Edt1.Text)) )  ;
 
   
     
if (y)=0 then
        begin
          StringList
.Append( '*'+ '00000000' +
 
                       Format('%.10d',[strtoint(ADOTable1.FieldByName('compte').AsString )])

 
                        +
 
                       Format('%.2d',[(ADOTable1.FieldByName('clé').Asinteger)])
 
                        +
 
                       Format('%.13d',[strtoint(ExtractNumberInString((ADOTable1.FieldByName('net_a_payer').AsString)+'.'+'00'))])
 
                        +
 
                        concatblanch(ADOTable1.FieldByName('nom').AsString)
 
                          + '1'
 
                         );

 
        end
         
else
 
        begin
         
if (y>0) and (y<(0.9)) then
        begin
          StringList
.Append( '*'+ '00000000' +
 
                       Format('%.10d',[strtoint(ADOTable1.FieldByName('compte').AsString )])

 
                        +
 
                       Format('%.2d',[(ADOTable1.FieldByName('clé').Asinteger)])
 
                        +
 
                       Format('%.13d',[strtoint(ExtractNumberInString((ADOTable1.FieldByName('net_a_payer').AsString)+'0'))])
 
                        +
 
                        concatblanch(ADOTable1.FieldByName('nom').AsString)
 
                          + '1'
 
                         );

 
                  end

        else

         begin
          
// ADOTable1.FieldByName('net_a_payer').Value:=Edit6.Text;

 
     StringList.Append( '*'+ '00000000' +
 
                       Format('%.10d',[strtoint(ADOTable1.FieldByName('compte').AsString )])

 
                        +
 
                       Format('%.2d',[(ADOTable1.FieldByName('clé').Asinteger)])
 
                        +
 
                       Format('%.13d',[strtoint(ExtractNumberInString(ADOTable1.FieldByName('net_a_payer').AsString))])
 
                        +
 
                        concatblanch(ADOTable1.FieldByName('nom').AsString)
 
                          + '1'
 
                         );

 
     end;
 
     end ;
 
     //showmessage (ADOTable1.FieldByName('net_a_payer').AsString);
 
     ADOTable1.Next;
 
   end;
 
   ADOTable1.EnableControls;

 
   StringList.SaveToFile(edit1.text+'\paie'+''+'mois'+''+edit2.text+edit3.text+'.txt');
 
   showmessage ('le fichier text été criée avec succeé');
 
   StringList.Free;
 
   except
    showmessage
('ereur ');
 
 end;
end; 
طبعا الكود يمكن اختصاره او كتابته بطريقة اخرى لكن المهم انه يؤدي نفس الدور
وكما يقال كل الطرق تادي الى روما
بالتوفيق لك و ارجو ان يكون مفهوما
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
الرد


الردود في هذا الموضوع
RE: فيما يتعلق بحفظ حقل في ملف نصي - بواسطة bassem_43 - 15-02-2016, 08:10 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم