الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعامل مع الملفات

بدأه زكيري عبد العالي في 9 أغسطس 2007 · 12 رد · 3,764 مشاهدة · في Delphi .NET/PRISM
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

4- كود لمعرفة اسم ملف من مسار معين

implementation{$R *.nfm}
 uses System.IO;
 procedure TForm1.Button1Click(Sender: TObject);
 var filename : String;
 begin
   fileName := 'C:\Program Files\Microsoft Windows Small Business Server\Clients\toto.txt';
   edit1.text := System.IO.Path.GetFileName(fileName);
 end;
 end.

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 16 أغسطس 2008 في 14:00

#2

5- عرض جميع ملفات دليل

implementation
 {$R *.nfm}
 uses System.IO;
 procedure TForm1.DirectoryListBox1Change(Sender: TObject);
 var Fichiers : array of String;
	 I : Integer;
	 MonRepertoire :string;
 begin
   ListBox1.Items.Clear;
   MonRepertoire := DirectoryListBox1.Directory;
   Fichiers:= System.IO.Directory.GetFileSystemEntries(MonRepertoire);
   for i:=0 to Length(Fichiers)-1 do
   ListBox1.Items.Add(System.IO.Path.GetFileName(Fichiers));
 end;
 end.

post-1034-1186670173_thumb.jpg

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 16 أغسطس 2008 في 14:02

#3

6- كود لكتابة و القراءة من ملف نصي طريقة 2 بواسطة Borland.Delphi.System.Text اي الطريقة العادية

procedure FichierTexte(nomFichier : TFileName);
var Fichier  : Text;
	Ligne : String;

begin
  Assign(Fichier,NomFichier);
  if not FileExists(nomFichier) then
   begin
	Rewrite(Fichier);
	Ligne:='Nous sommes le '+DateTime.Now.ToLongDateString+' et il est '+DateTime.Now.ToLongTimeString;
	Fichier.WriteAnsiString(Ligne,length(Ligne));
	Fichier.Flush;
	Close(Fichier);
	// نستطيع الاطافة بواسطة 
	//   Append(Fichier);
   end;

  // عرض النص في  console
  Writeln('Début du fichier');
  Reset(Fichier);
  Ligne := Fichier.ReadAnsiString;
  while ligne <> nil do
   begin
	Writeln(ligne);
	ligne := Fichier.ReadAnsiString;
   end;
  Close(Fichier);
  Writeln( 'Fin du fichier' );
end;

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 9 أغسطس 2007 في 17:45

#4

تغيير لاحقة ملف

[color= #990000;]System[color= #339933;].IO[color= #339933;].Path[color= #339933;].ChangeExtension[color= #009900;]([color= #0000ff;]'C:[color= #000099; font-weight: bold;]test.xml'[color= #339933;], [color= #0000ff;]'doc'[color= #009900;])[color= #339933;];

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 16 أغسطس 2008 في 14:03

#5

الملف موجود او لا هي مثل الدلفي العادي تقربا

 

      [color= #b1b100;]If [color= #990000;]System[color= #339933;].IO[color= #339933;].[color= #990000;]File[color= #339933;].Exists[color= #009900;]([color= #0000ff;]'c:[color= #000099; font-weight: bold;]test.xml'[color= #009900;]) Then

        showmessage[color= #009900;]([color= #0000ff;]'الملف موجود'[color= #009900;])

      [color= #b1b100;]Else

        showmessage[color= #009900;]([color= #0000ff;]'الملف غير موجود'[color= #009900;])
#6

الانشاء الحذف النسخ النقل

implementation

uses [color= #990000;]System[color= #339933;].IO[color= #339933;];

[color= #009900;]{[color= #000033;]$R [color= #339933;]*.nfm[color= #009900;]}

 

procedure TForm1[color= #339933;].BitBtn1Click[color= #009900;](Sender[color= #339933;]: TObject[color= #009900;])[color= #339933;];

[color= #000000; font-weight: bold;]var

   fs [color= #339933;]: FileStream[color= #339933;];

begin

 

        Try

            [color= #666666; font-style: italic;]//انشاء ملف فارغ

            fs[color= #339933;]:=FileStream[color= #339933;].Create[color= #009900;]([color= #0000ff;]'myfile.txt'[color= #339933;],FileMode[color= #339933;].Create[color= #339933;],FileAccess[color= #339933;].Write[color= #339933;],FileShare[color= #339933;].None[color= #009900;])
[color= #339933;];

            fs[color= #339933;].Close[color= #009900;]([color= #009900;])[color= #339933;];

            Console[color= #339933;].WriteLine[color= #009900;]([color= #0000ff;]'تم الانشاء'[color= #009900;])[color= #339933;];

            [color= #666666; font-style: italic;]// نسخ ملف

            [color= #339933;]&File[color= #339933;].[color= #990000;]Copy[color= #009900;]([color= #0000ff;]'myfile.txt'[color= #339933;], [color= #0000ff;]'c:[color= #000099; font-weight: bold;]copyofmyfile.txt'[color= #009900;])[color= #339933;];

            Console[color= #339933;].WriteLine[color= #009900;]([color= #0000ff;]'تم نسخ الملف  '[color= #009900;])  [color= #339933;];

 

            [color= #666666; font-style: italic;]// نقل الملف

            [color= #339933;]&File[color= #339933;].Move[color= #009900;]([color= #0000ff;]'c:[color= #000099; font-weight: bold;]copyofmyfile.txt'[color= #339933;], [color= #0000ff;]'D:[color= #000099; font-weight: bold;]copyofmyfile.txt'[color= #009900;])[color= #339933;];

            Console[color= #339933;].WriteLine[color= #009900;]([color= #0000ff;]'تم نقل الملف'[color= #009900;])[color= #339933;];

 

            [color= #666666; font-style: italic;]// حذف الملف

            [color= #339933;]&File[color= #339933;].Delete[color= #009900;]([color= #0000ff;]'d:[color= #000099; font-weight: bold;]copyofmyfile.txt'[color= #009900;])[color= #339933;];

            Console[color= #339933;].WriteLine[color= #009900;]([color= #0000ff;]'تم الحذف'[color= #009900;])[color= #339933;];

            except on ex [color= #339933;]: Exception [color= #b1b100;]do

            Console[color= #339933;].WriteLine[color= #009900;](ex[color= #339933;].Message[color= #009900;])[color= #339933;];

        [color= #990000;]End[color= #339933;];

[color= #990000;]end[color= #339933;];

[color= #990000;]end[color= #339933;].
#7

معرفة لاحقة ملف

[color= #000000; font-weight: bold;]function GetExtension[color= #009900;](path [color= #339933;]: String[color= #009900;])[color= #339933;]: String[color= #339933;];

begin

  result[color= #339933;]:=[color= #990000;]System[color= #339933;].IO[color= #339933;].&FileInfo[color= #339933;].Create[color= #009900;](path[color= #009900;])[color= #339933;].Extension[color= #339933;];

[color= #990000;]end[color= #339933;];

 

 

 

showmessage[color= #009900;](GetExtension[color= #009900;]([color= #0000ff;]'c:[color= #000099; font-weight: bold;]lxdd.log'[color= #009900;])[color= #009900;])[color= #339933;];

النتيجة log

الدرس القادم هو ضعط الملفات ب GZip منقول و مترجم ومحول الى الدلفي من منتدى vb.net developpez

#8

1- ملفات الاكسمل Xml basique العادية البسيطة

مثل

<Recordbook>
   <Records>
	 <Record>
	   <FirstValue>10</FirstValue>
	   <SecondValue>51</SecondValue>
	 </Record>
	 <Record>
	   <FirstValue>25</FirstValue>
	   <SecondValue>38</SecondValue>
	 </Record>
   </Records>
 </Recordbook>

implementation

uses [color= #990000;]System[color= #339933;].Xml[color= #339933;].XPath[color= #339933;];

[color= #009900;]{[color= #000033;]$R [color= #339933;]*.nfm[color= #009900;]}

procedure TraiteXml[color= #009900;](fileName[color= #339933;]:string[color= #009900;])[color= #339933;];

    [color= #000000; font-weight: bold;]var

    doc [color= #339933;]: XPathDocument[color= #339933;];

    nav [color= #339933;]: XPathNavigator[color= #339933;];

    iter[color= #339933;]: XPathNodeIterator[color= #339933;];

    firstValue[color= #339933;],secondValue [color= #339933;]: String[color= #339933;];

begin

    doc [color= #339933;]:= XPathDocument[color= #339933;].Create[color= #009900;](fileName[color= #009900;])[color= #339933;];

    nav [color= #339933;]:= doc[color= #339933;].CreateNavigator[color= #339933;];

 

    [color= #666666; font-style: italic;]// نسترجع XPathNodeIterator s

    iter [color= #339933;]:= nav[color= #339933;].Select[color= #009900;]([color= #0000ff;]'Recordbook/Records/Record'[color= #009900;])[color= #339933;];

    [color= #666666; font-style: italic;]//لكل سجل

    [color= #b1b100;]While iter[color= #339933;].MoveNext [color= #b1b100;]do

    begin

[color= #666666; font-style: italic;]//        ' القيمه الاولى

        firstValue [color= #339933;]:= firstValue [color= #339933;]+[color= #0000ff;]' | '[color= #339933;]+ iter[color= #339933;].[color= #990000;]Current[color= #339933;].SelectSingleNode[color= #009900;]([color= #0000ff;]'FirstValue'[color= #009900;])[color= #339933;].Value[color= #339933;];

[color= #666666; font-style: italic;]//        ' القيمه الثانية

        secondValue [color= #339933;]:= secondValue [color= #339933;]+[color= #0000ff;]' | '[color= #339933;]+ iter[color= #339933;].[color= #990000;]Current[color= #339933;].SelectSingleNode[color= #009900;]([color= #0000ff;]'SecondValue'[color= #009900;])[color= #339933;].Value[color= #339933;];

    [color= #990000;]end[color= #339933;];

    showmessage[color= #009900;](firstValue[color= #339933;]+[color= #666666; font-style: italic;]#13+ secondValue);

[color= #990000;]end[color= #339933;];

 

 

 

procedure TForm1[color= #339933;].BitBtn1Click[color= #009900;](Sender[color= #339933;]: TObject[color= #009900;])[color= #339933;];

begin

TraiteXml[color= #009900;]([color= #0000ff;]'c:[color= #000099; font-weight: bold;]a.xml'[color= #009900;])[color= #339933;];

[color= #990000;]end[color= #339933;];

 

[color= #990000;]end[color= #339933;].

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 16 أغسطس 2008 في 17:14

#9

2- ملفات اكسمل ذات اسم المساحة

مثل

<rd:Recordbook xmlns:rd="http://myexemple/myschema/record">
  <rd:Records>
	<rd:Record>
	  <rd:FirstValue>10</rd:FirstValue>
	  <rd:SecondValue>51</rd:SecondValue>
	</rd:Record>
	<rd:Record>
	  <rd:FirstValue>25</rd:FirstValue>
	  <rd:SecondValue>38</rd:SecondValue>
	</rd:Record>
  </rd:Records>
</rd:Recordbook>

implementation

uses [color= #990000;]System[color= #339933;].Xml[color= #339933;].XPath[color= #339933;],[color= #990000;]System[color= #339933;].Xml[color= #339933;];

[color= #009900;]{[color= #000033;]$R [color= #339933;]*.nfm[color= #009900;]}

procedure _TraiteXml[color= #009900;](fileName[color= #339933;]:string[color= #009900;])[color= #339933;];

    [color= #000000; font-weight: bold;]var

    doc [color= #339933;]: XPathDocument[color= #339933;];

    nav [color= #339933;]: XPathNavigator[color= #339933;];

    iter[color= #339933;]: XPathNodeIterator[color= #339933;];

    mgr [color= #339933;]: XmlNamespaceManager[color= #339933;];

    firstValue[color= #339933;],secondValue [color= #339933;]: String[color= #339933;];

begin

    doc [color= #339933;]:= XPathDocument[color= #339933;].Create[color= #009900;](fileName[color= #009900;])[color= #339933;];

    nav [color= #339933;]:= doc[color= #339933;].CreateNavigator[color= #339933;];

    mgr [color= #339933;]:= XmlNamespaceManager[color= #339933;].Create[color= #009900;](nav[color= #339933;].NameTable[color= #009900;])[color= #339933;];

    mgr[color= #339933;].AddNamespace[color= #009900;]([color= #0000ff;]'rd'[color= #339933;], [color= #0000ff;]'http://myexemple/myschema/record'[color= #009900;])[color= #339933;];

    iter [color= #339933;]:= nav[color= #339933;].Select[color= #009900;]([color= #0000ff;]'rd:Recordbook/rd:Records/rd:Record'[color= #339933;], mgr[color= #009900;])[color= #339933;];

    [color= #b1b100;]While iter[color= #339933;].MoveNext [color= #b1b100;]do

    begin

        firstValue [color= #339933;]:= firstValue [color= #339933;]+[color= #0000ff;]' | '[color= #339933;]+ iter[color= #339933;].[color= #990000;]Current[color= #339933;].SelectSingleNode[color= #009900;]([color= #0000ff;]'rd:FirstValue'[color= #339933;], mgr[color= #009900;])[color= #339933;].Va
lue[color= #339933;];

        secondValue [color= #339933;]:=secondValue[color= #339933;]+[color= #0000ff;]' | '[color= #339933;]+iter[color= #339933;].[color= #990000;]Current[color= #339933;].SelectSingleNode[color= #009900;]([color= #0000ff;]'rd:SecondValue'[color= #339933;], mgr[color= #009900;])[color= #339933;].Va
lue[color= #339933;];

    [color= #990000;]end[color= #339933;];

    showmessage[color= #009900;](firstValue [color= #339933;]+ [color= #666666; font-style: italic;]#13  + secondValue);

[color= #990000;]end[color= #339933;];

 

procedure TForm1[color= #339933;].BitBtn1Click[color= #009900;](Sender[color= #339933;]: TObject[color= #009900;])[color= #339933;];

begin

    _TraiteXml[color= #009900;]([color= #0000ff;]'c:[color= #000099; font-weight: bold;]a.xml'[color= #009900;])[color= #339933;];

[color= #990000;]end[color= #339933;];

 

[color= #990000;]end[color= #339933;].
#10

3-XMLTextReaderالطريقة الثالثه باستعمال

implementation[color= #009900;]{[color= #000033;]$R [color= #339933;]*.nfm[color= #009900;]}

 uses [color= #990000;]system[color= #339933;].xml[color= #339933;];

 procedure TForm1[color= #339933;].Button1Click[color= #009900;](Sender[color= #339933;]: TObject[color= #009900;])[color= #339933;];

 [color= #000000; font-weight: bold;]var

     reader [color= #339933;]:XMLTextReader[color= #339933;];

     i[color= #339933;]: integer[color= #339933;];

 begin

   try

  reader [color= #339933;]:= XMLTextReader[color= #339933;].Create[color= #009900;]([color= #0000ff;]'c:[color= #000099; font-weight: bold;]a.xml'[color= #009900;])[color= #339933;];

  [color= #b1b100;]While reader[color= #339933;].Read[color= #009900;]([color= #009900;]) [color= #b1b100;]do

  begin

        [color= #b1b100;]case reader[color= #339933;].NodeType of

        XMLNodeType[color= #339933;].Element[color= #339933;]:

        [color= #b1b100;]if reader[color= #339933;].HasAttributes then

            [color= #b1b100;]for i [color= #339933;]:= [color= #cc66cc;]0 to reader[color= #339933;].AttributeCount [color= #339933;]- [color= #cc66cc;]1 [color= #b1b100;]do

                showmessage[color= #009900;](reader[color= #339933;].GetAttribute[color= #009900;](i[color= #009900;]) [color= #009900;])[color= #339933;];

       XMLNodeType[color= #339933;].Text[color= #339933;]:

                showmessage[color= #009900;](reader[color= #339933;].Value [color= #009900;])[color= #339933;];

        [color= #990000;]end[color= #339933;];

  [color= #990000;]end[color= #339933;];

  except on ex [color= #339933;]:Exception [color= #b1b100;]do

    showmessage[color= #009900;]([color= #0000ff;]'مشكله في فتح ملق الاكسمل'[color= #009900;])[color= #339933;];

  [color= #990000;]end[color= #339933;];

  reader[color= #339933;].close[color= #339933;];

 [color= #990000;]end[color= #339933;];

 

 [color= #990000;]end[color= #339933;].

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 16 أغسطس 2008 في 18:13

#11

اما اذا كان الملف مصنوع بالمكون clientdataset 4-و

المهم ان يكون بهذه الهيكلة فنستطيع قراءته ب

<?xml version="1.0" standalone="yes" ?> 
	<DATAPACKET Version="2.0">
	<METADATA>
	<FIELDS>
	<FIELD attrname="FirstValue" fieldtype="string" WIDTH="10" /> 
	<FIELD attrname="SecondValue" fieldtype="string" WIDTH="10" /> 
	</FIELDS>
	</METADATA>
	<ROWDATA>
	<ROW RowState="4" FirstValue="10" SecondValue="51" /> 
	<ROW RowState="4" FirstValue="25" SecondValue="38" /> 
	</ROWDATA>
	</DATAPACKET>

procedure TForm1[color= #339933;].Button1Click[color= #009900;](Sender[color= #339933;]: TObject[color= #009900;])[color= #339933;];

[color= #000000; font-weight: bold;]var

J[color= #339933;]: Integer[color= #339933;];

begin

with ClientDataSet1 [color= #b1b100;]do

begin

FileName[color= #339933;]:=[color= #0000ff;]'c:[color= #000099; font-weight: bold;]aa.xml'[color= #339933;];

Open[color= #339933;];

   [color= #b1b100;]for J [color= #339933;]:= [color= #cc66cc;]1 to RecordCount [color= #b1b100;]do

   begin

       recno[color= #339933;]:=J[color= #339933;];

       showmessage[color= #009900;](ClientDataSet1[color= #339933;].FieldByName[color= #009900;]([color= #0000ff;]'FirstValue'[color= #009900;])[color= #339933;].Value[color= #009900;])[color= #339933;];

       showmessage[color= #009900;](ClientDataSet1[color= #339933;].FieldByName[color= #009900;]([color= #0000ff;]'SecondValue'[color= #009900;])[color= #339933;].Value[color= #009900;])[color= #339933;];

   [color= #990000;]end[color= #339933;];

[color= #990000;]end[color= #339933;];

[color= #990000;]end[color= #339933;];

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 16 أغسطس 2008 في 19:04

#13

السلام عليكم

حسب ما فهمت و اعتقد انها Stream من النيم سبيس system.io

مواضيع مشابهة