ورود

View Full Version : سوال: چگونگی کار با فایل های XML ؟



Answer
یک شنبه 21 آذر 1389, 16:08 عصر
من دارم رو یه برنامه کار میکنم و میخوام از بانکی استفاده کنم که نیاز به نصب نداشته باشه
فکر کنم بهترین انتخاب xml باشه (برنامه از روی سی دی اجرا خواهد شد)
دوستانی که اطلاعاتی در مورد نحوه درج ، حذف ، ویرایش یک رکورد در xml دارند ممنون میشم کمکم کنن:ناراحت::افسرده:

arash22
یک شنبه 21 آذر 1389, 16:12 عصر
XML انتخاب خوبي براي يه بانك اطلاعاتي نيست، و فقط در مواردي كاربردهايي به اين منظور داره، مثلاً Access هم نياز به نصب روي كامپيوتر مشتري نداره، يا همينطور گزينه مناسب ديگه Sql Express

arash22
یک شنبه 21 آذر 1389, 16:14 عصر
براي پردازش XML هم ميشه به صورت Dataset با اون برخورد كرد و پردازش كرد و سپس تغييرات را اعمال كرد با دستورات ReadXML و WriteXML هم ميشه با تعريف فيلدي از نوع XML اون را پردازش كرد و هم به شكل string باهاش برخورد كنيم

Answer
یک شنبه 21 آذر 1389, 16:31 عصر
دوست عزیز بانک بزرگی نیست و ناگفته نمونه که بانک اکسس باید نصب بشه (همراه خود اکسس نصب میشه)
میخوام یه سری اطلاعات رو از بانک xml بخونم و بعد از یه سرچ توی tree نمایش بدم
بدین جهت xml رو انتخاب کردم چون رکوردها به شکل درخت دارای فرزند میباشند

Felony
یک شنبه 21 آذر 1389, 16:42 عصر
دوست عزیز بانک بزرگی نیست و ناگفته نمونه که بانک اکسس باید نصب بشه (همراه خود اکسس نصب میشه)
بانک اکسس نیازی به نصب شدن نداره !
اون موتور Access Database Engine هست که باید نصب باشه که برای اکسس همراه خود ویندوز نصب میشه مگر اینکه از اکسس 2007 یا 2010 استفاده کنید که در اون صورت باید به صورت دستی موتور رو برای کاربر مقصد نصب کنید یا این کار رو به Setup برنامه بسپارید ، انتخاب های بهتری نظیر SQLite ، Firebird , Absolute هم وجود داره که نیازی به نصب هیچ مورد اضافی نداره .

vcldeveloper
دوشنبه 22 آذر 1389, 01:25 صبح
انتخاب های بهتری نظیر SQLite ، Firebird , Absolute هم وجود داره که نیازی به نصب هیچ مورد اضافی نداره .
Firebird نیاز به نصب داره؛ حتی در حالت Embedded باید DLL مربوطه در سیستم کاربر موجود باشه.


بدین جهت xml رو انتخاب کردم چون رکوردها به شکل درخت دارای فرزند میباشند
اگر مسئله تون صرفا ذخیره یک لیست از گزینه های محدود و لود کردن آنها در یک درخت هست، همون XML گزینه خوبی هست. البته اگر درخت تان TreeView هست، خودش متدهای LoadFromFile و SaveToFile داره، که از طریق اونها می تونید به راحتی درخت موجود را در یک فایل ذخیره کنید، یا محتوای یک فایل موجود را در آن لود کنید. البته TreeView داده ها را به صورت XML ذخیره نمیکنه، بلکه به صورت متن ساده ذخیره میکنه و از Tab برای مشخص کردن سطح هر گزینه استفاده میکنه.

در هر حال...


دوستانی که اطلاعاتی در مورد نحوه درج ، حذف ، ویرایش یک رکورد در xml دارند ممنون میشم کمکم کنن
XML رکورد نداره، بلکه Node داره. شما سه راه حل کلی می تونید داشته باشید:
1- فایل XML رو به صورت یک فایل متنی معمولی باز کنید، و تغییرات مورد نظرتان را خودتان در متن فایل اعمال کنید. برای همچین کاری، خودتون باید روی متن فایل محل اعمال تغییرات را پیدا کنید، و همه کارها را خودتان انجام بدید. انجام همچین کاری فقط برای فایل های با ساختار فوق العاده ساده توجیه پذیر هست.

2- فایل XML را در یک XML DOM لود کنید، و از طریق آن، به محل اعمال تغییران در فایل برسید، و تغییرات خودتان را در Node مورد نظرتان اعمال کنید. این راه معمول کار با فایل های XML هست.

3- با استفاده از یک XML Transformer، داده XML خودتان را در داخل برنامه تبدیل به Data Packet کنید، و آن را به یک DatasetProvider متصل کنید، تا از طریق ClientDataset به آن همچون یک بانک اطلاعاتی دسترسی داشته باشید. از این جا به بعدش، تغییرات روی داده ها دقیقا همچون اعمال تغییرات بر یک دیتاست معمولی هست. این حالت توسط دلفی با استفاده از ابزارهای خاصی به شدت تسهیل شده.

برای حالت اول و دوم باید با ساختار فایل های XML آشنا باشید. در حالت اول باید با پردازش و Parse کردن آنها هم آشنا باشید. در حالت دوم باید کار با یک XML DOM را بلد باشید. در حالت سوم، باید ابتدا با استفاده از ابزار XML Mapper دلفی، یک XML Transformer برای تبدیل XML به Data Packet و یک XML Transformer برای تبدیل Data Packet به XML ایجاد کنید. سپس می تونید با استفاده از یک XMLTransformProvider و یک ClientDataset، با داده XML تان مثل یک بانک اطلاعاتی معمولی رفتار کنید. یادم هست این حالت را خودم قبلا در همین سایت توضیح دادم. اگر جستجو کنید، باید بتونید در سایت پیداش کنید.