مشاهده نسخه کامل
: درخواست کمک برای کار با فایلهای XML
shadmehrshadow1
24-07-2010, 08:54
من یه فایل XML میخوام یه چیزی شبیه به این :
<?xml version="1.0" encoding="utf-8"?>
<Events>
<Shamsi>
<INFO Day="1" Month="فروردین" Event="آغاز نوروز - تعطيل" Holiday="True" Date="1/1" Picture="\images\Nouroz.jpg" />
<Shamsi>
<Miladi>
</Miladi>
<GHamari>
</GHamari>
</Events>
ومیخوام بین تگ های <Shamsi> و <Miladi> و <GHamari> اطلاعات ماه ها رو قرار بدم . اون اطلاعات این ها هستند .
روز ، ماه ، رخداد ، تاریخ ، یه مقدار True یا False و یه آدرس تصویر . مثل زیر .
<INFO Day="1" Month="فروردین" Event="آغاز نوروز - تعطيل" Holiday="True" Date="1/1" Picture="\images\Nouroz.jpg" />
ولی نمیدونم که چه جوری این مقدار ها رو توش بزارم . اما مشکل اصلی نحوه خوندن اطلاعات از این فایلی که ایجاد میشه . میخوام بعد از درست کردن
فایلی که گفتم . بتونم اطلاعات فایل XML رو بخونم و توی یه ArrayList بریزم . مثلا 6 تا ArrayList که هرکدوم یکی از مقدار ها رو توی خودش نگه داره مثل
مقدار روز که خط به خط خونده بشه و بره توی ArrayList . ولی نکته مهم اینه که میخوام بتونم اطلاعات رو به صورت های مختلف بخونم مثل زیر :
1- خوندن اطلاعات از تگ <Shamsi>
2- خوندن اطلاعات از تگ<Miladi>
3- خوندن اطلاعات از تگ<GHamari>
4- خوندن اطلاعات از کل فایل
و همین طور نوشتن اطلاعات توی فایل با حالت های مختلف مثل زیر :
1- نوشتن اطلاعات در تگ <Shamsi>
2- نوشتن اطلاعات در تگ<Miladi>
3- نوشتن اطلاعات در تگ<GHamari>
و همین طور ویرایش اطلاعات .
ممنون میشم اگه یه چیز مناسب رو بذارید که همه ی این ها رو داشته باشه .
پس چی شد ؟ من چی می خوام .
1- یه کد XML که بشه اطلاعاتی رو که گفتم رو بشه توش نوشت .البته به صورتی که گفتم .
2- نحوه خوندن اون اطلاعات به حالت های مختلف گفته شده .
3- نحوه نوشتن اطلاعات به حالت های مختلف گفته شده .
4- نحوه ویرایش اطلاعات .
میدونم در خواست بزرگیه ولی خوب واقعا بهش نیاز دارم و خیلی گیرم و فوریه . فوری !
ولی به شما اعتماد دارم و میدونم که میتونید .
سلام
یه راه ساده و آسون استفاده از XmlSerializer برای سریالی کردن کلاس ها به شکل XML است برای حل این نمونه شما می توانید یک رابط به شکل زیر به پروژه استفاده کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا باید کلاس های شمسی و قمری و میلادی را بر اساس این رابط پیاده کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کلاس های قمری و میلادی هم به همین شکل این رابط رو پیاده می کنن.
بعد از پیاده سازی اون سه کلاس باید کلاس(که در XML می شود عنصر ریشه) Events رو پیاده کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نهایتا برای استفاده باید از کدی شبیه این استفاده کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
امیدوارم تونسته باشم کمکتون کنم
shadmehrshadow1
24-07-2010, 18:46
خیلی خیلی ممنون.هنوز امتحانشون نکردم ولی معلومه که عالیه .
shadmehrshadow1
24-07-2010, 19:33
راستش من نمیدونم کد ها رو باید کجا کپی کنم . در هر صورت من کد ها رو این طوری درستشون کردم :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ببینید مشکلی توش وجود نداره ویا جای درستی کپی کردم . چون این خطلا ها به وجود اومده :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این خطا رو برای همه ی گزینه های IInfo به وجود اومده و همین طور برای کلاس های میلادی و قمری.
و به خاطر همین نمیتونم برنامه رو اجرا کنم و یا امتحان کنم .
خوب معلومه که خطا می دهد ! شما اومدید همه ی کلاس ها رو مثل (چه بگویم) ریختید تو یه فایل!
تمام کلاس ها و رابط رو در فایل های جداگانه ایجاد کنید
روی پروژه راست کلیک Add -> class و یک کلاس یا رابط رو در اون کپی کنید(این کارو برای همه کلاس ها تکرار کنید )
موفق باشید
shadmehrshadow1
25-07-2010, 10:40
سلام ممنون.
حتما میگید چه قدر من .... هستم . راستش حق دارید چون من چند وقته خودم رو آوردم سمته دات نت و کسی رو ندارم که بهم کمک کنه .
ولی میشه بگید
Public Interface IInfo
رو کجا باید کپی کنم.
سلام
حتما میگید چه قدر من .... هستم . راستش حق دارید چون من چند وقته خودم رو آوردم سمته دات نت و کسی رو ندارم که بهم کمک کنه .
نه من اصلا منظوری نداشتم
فقط سعی کنید کدها جوری باشد که خوتان و افراد دیگر از خواندنش لذت ببرند!:46:
ولی میشه بگید
Public Interface IInfo
رو کجا باید کپی کنم.
یک کلاس ایجاد کنید و نامش را بگزارید IInfo بعد کلمه ی کلید Class رو به Interface تغییر بدید و کدها رو داخلش کپی کنید.(البته خود آیتم Interface هم موجود است)
shadmehrshadow1
25-07-2010, 19:14
سلام
یک کلاس ایجاد کنید و نامش را بگزارید IInfo بعد کلمه ی کلید Class رو به Interface تغییر بدید و کدها رو داخلش کپی کنید.(البته خود آیتم Interface هم موجود است)
راستش نمیخوام نا امیدتون کنم ولی بازم همون خطا را که قبلا گفتم داد. بنظرم اگه به صورت پروژه بذارید هم برای شما و هم برای من بهتر باشه . در ضمن من خود آیتم Interface رو ندیدم.
بازم ممنون
راستش نمیخوام نا امیدتون کنم ولی بازم همون خطا را که قبلا گفتم داد
لااقل الان میشه بهش گفت کد!
ناامید؟:31: اگر کسی با نوشتن چهار خط کد و گرفتن یک خطا ناامید شود احتمالا برنامه نویس نشود بهتر است!
مشکل اصلی را الان دریافتم!
به هر خصیصه که از این رابط پیاده شده باید این رو اضافه کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مثال پیاده سازی خصیصه Day اینطوری می شود:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
از ویبی متنفرم!
موفق باشید
shadmehrshadow1
26-07-2010, 10:21
دستت درد نکنه .فکر کنم درست شده .ولی هنوز همه رو امتحان نکردم.ولی بازم ممنون.
shadmehrshadow1
26-07-2010, 10:48
ببخشید . ولی وقتی روی دکمه ی Add کلیک میکنیم .یه خطا ر خط زیر از قسمت Load میگیره :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
متن خطا :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
توی دکمه ی Add هم این کد ها رو نوشتم :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و اینکه باید از قبل توی فایل XML چیز خاصی نوشته باشم.ممنون میشم که اگه متن درون فایل رو هم بزاری
اگر امکان دارد تمام این کدهایی که با xml کار می کنند رو در قالب یه پروژه بذارید تا جواب رو صحیح تر بدم... چون کد های من بدون مشکل اجرا می شن ... (احتمالا چند روزی هم نیستم ...)
shadmehrshadow1
26-07-2010, 16:42
بفرمایید اینم پروژه :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ولی بهتر بود شما جواب رو به صورت پروژه بذارید .
خواهشا اول جواب بده بعد برو .خیلی لازمش دارم.
ممنون
shadmehrshadow1
29-07-2010, 17:29
این کره زمینی که گفتی گذاشتی (WFWPFCtrlEarth) چه جوری باهاش کار کنم . مثل اینکه به زبان C هستش؟!
سلام
ببخشید کمی دیر شد
مشکل از آدرس فایل xml است...
اگر می خواهید آدرس پوشه برنامه را پیدا کنید باید از کدی شبیه این استفاده کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این کره زمینی که گفتی گذاشتی (WFWPFCtrlEarth) چه جوری باهاش کار کنم . مثل اینکه به زبان C هستش؟!
باید dll پروژه اول را refrence کنید بعد در مکانی که می خواهید ازش استفاده کنید یک کنترلر ElementHost بگذارید و بعد در سازنده یا رویداد Form Load کد زیرو وارد کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
یک نمونه ساده برایتان حاضر کردم.
این نمونه خیلی شبیه نیاز شما است.
یکسری رویداد را با فیلدهایی خاص در یک فایل xml ذخیره میکند.
دانلود:
support.h02.ir/fwlink/?LinkId=1007455337
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
روی همین سمپل اگر سوالی داشتید در خدمت هستم.
موفق باشید.
shadmehrshadow1
31-07-2010, 11:05
هنوز امتحان نکردم ولی . دسته هردوتون درد نکنه .
shadmehrshadow1
31-07-2010, 11:38
آدرس فایل رو هم عوض کردم ولی خطا توی همون خطی که بهتون گفتم هست . بهتره که شما جواب رو به صورت یه پروژه بذارید .
شاید اشکال از متن فایل XML باشه . نمیدونم . ولی همون طور که گفتم بهتره که پروژه بذارید .
درمورد کره زمین بگم که Refrence کردم ولی جواب نداد . زیر کد WPFEarth.AnimatedEarth() خط میکشه انگار که اطلا Renrence نشده
ولی توی پنجره Refrence هست ولی توس کد نویسی چیزی به نام WPFEarth وجود نداره . شاید به خاطره اینکه ویبی 2008 هست اینطوری
میشه .
آقای _H2_ کد خوبی بود ممنون ولی اون چیزی که من میخواستم نبود . خیلی شلوغ بود . من کدی میخوام که توی فرم برای هرکدوم
از بخش ها مثل Day , Month , ... یه تکست بذارم و تعیین کنم که برای کدون تگ هست مثل شمسی و بعد از کلیک روی یه دکمه
اطلاعات درون تکس بره توی فایل Xml در ضمن مقدار Picture رو هم میخوام یه رشته باشه نه عکس . و همین طور میخوام موقع که اطلاعات
رو میخونم توی دیتا گرید نره ، بره توی Array List فکر کنم توی قسمت های قبلی همین پست درست منظورم رو رسونده باشم که چی میخوام.
آدرس فایل رو هم عوض کردم ولی خطا توی همون خطی که بهتون گفتم هست . بهتره که شما جواب رو به صورت یه پروژه بذارید .
شاید اشکال از متن فایل XML باشه . نمیدونم . ولی همون طور که گفتم بهتره که پروژه بذارید .
درمورد کره زمین بگم که Refrence کردم ولی جواب نداد . زیر کد WPFEarth.AnimatedEarth() خط میکشه انگار که اطلا Renrence نشده
ولی توی پنجره Refrence هست ولی توس کد نویسی چیزی به نام WPFEarth وجود نداره . شاید به خاطره اینکه ویبی 2008 هست اینطوری
میشه .
کد زیرو به به سازنده کلاس Events اضافه کنید مشکل حل می شود->
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در ضمن فیلد X_FilePath رو هم از حالت readonly خارج کنید
-
در مورد آن کره زمین هم من VS 2008 ندارم ...
shadmehrshadow1
01-08-2010, 09:35
این کار رو هم کردم .بازم همون خط رو خطا میده .
آخه چرا ؟ چرا ؟:41:
در کدی که گذاشتین من تنها یکبار این ارورر را گرفتم که با درست کردن آدرس فایل این خطا رفع شد
تنها یک چیز(:31:) دیگر به ذهنم می رسد امتحانش کنید شاید مشکل حل شد...
اگر فایل xml ای توسط برنامه در پوشه ای که برایش معلوم کردین ایجاد شده آن را بپاکید
در متد Load کلاس Events نوع stream استفاده شده FileStream است - آن را به StreamReader تغییر دهید
و در متد Save هم آن را به StreamWriter تغییر بدید...
البته این رو هم الکی نگفتم!
(در اصل این نوع Stream برای خواندن و نوشتن فایل های متنی است و چیز اصل کاری این است که به طور پیش فرض از UTF-8 Encoding استفاده می کند و این دقیقا همان چیزی است که یک فایل xml در خط اولش می خواهد!)
shadmehrshadow1
01-08-2010, 14:21
وقتی فایل Xml رو پاک کردم . تونستم با همون کد اصلی و اولی که گذاشتی کار اضافه کردن رو انجام بدم . ولی یه مشکل هست .
وقتی که یه مقدار جدید رو اضافه میکنم اطلاعات قبلی پاک میشه و اطلاعات جدید میره روی اطلاعات قبلی . این اتفاق با همین کد جدیدی
که دادی هم میافته . راستی حالا که داری زحمت میکشی .کد نحوه خوندن از فایل رو هم میذاری .
ممنون
وقتی که یه مقدار جدید رو اضافه میکنم اطلاعات قبلی پاک میشه و اطلاعات جدید میره روی اطلاعات قبلی . این اتفاق با همین کد جدیدی
که دادی هم میافته .
ممنون
با توجه به xml اولیه که گذاشتی خوب بایدم این اتفاق بیفته چون ما در کلاس Events فقط سه شی Shamsi و ... داریم نه سه آرایه از اونها. اگر از هر کدام بیش از یکی بخواهید باید هر کدام را آرایه کنید و در متد Save ابتدا به آرایه اضافه و بعد ذخیره کنید.
کد نحوه خوندن از فایل رو هم میذاری .
چه فایلی؟ عکس؟ حدودا حجمش چقدر است؟ در کجا قرار دارد؟
shadmehrshadow1
01-08-2010, 19:32
با توجه به xml اولیه که گذاشتی خوب بایدم این اتفاق بیفته چون ما در کلاس Events فقط سه شی Shamsi و ... داریم نه سه آرایه از اونها. اگر از
هر کدام بیش از یکی بخواهید باید هر کدام را آرایه کنید و در متد Save ابتدا به آرایه اضافه و بعد ذخیره کنید.
میشه بگی چه جوری ؟ زیاد متوجه نشدم .بهتره کدش رو بزاری .
چه فایلی؟ عکس؟ حدودا حجمش چقدر است؟ در کجا قرار دارد؟
:27:نه منظورم همون XML هستش . چه جوری اطلاعات رو ازش بخونم و مثلا توی یه ArrayList بریزم.
خصیصه های Shamsi و... تمام باید آرایه یا لیست شوند:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
توجه کنید در سازنده سه لیست را new کرده باشید...
حالا در رویداد Add اون دکمه این تغییرات جدید را به Shamsi و ... Add کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ونهایتا متد Save را اجرا کنید
---------
کلاسش را تعریف کنید کد خواندنش شبیه متد Load است
shadmehrshadow1
03-08-2010, 10:12
منظورت اینه که کدی رو که گذاشتی رو در کلاس Event به جای بخش زیر قرار بدم :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که اگه اینطوری باشه اونوقت زیر X_Shamsi و Value خط میکشه .
بنظرم به خاطر اینکه کد اصلی نسبتا خیلی تغییر کرده . اگه یه باره دیگه کد های جدید رو به صورت کامل مثل همون طوری که اول گذاشته
بودی بذاری بهتر باشه .
shadmehrshadow1
04-08-2010, 11:16
سلام
نیستی یا .... . تورو خدا هرچه زودتر این قضیه رو حل کنید . بد جوری گیرشم.
سلام
کمی گرفتارم...
در کدی که گذاشتی X_Shamsi و value و خود خصیصه هر سه را لیست Shamsi بذار نه Shamsi :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
shadmehrshadow1
05-08-2010, 10:01
در کدی که گذاشتی X_Shamsi و value و خود خصیصه هر سه را لیست Shamsi بذار نه Shamsi :
یعنی چی که هرسه را Shamsi بذارم ولی Shamsi نذارم . اینا که هردو یه چیزن . در ضمن اگه این کدی رو که توی پست قبل گذاشتی رو
جایگزین همون کدی که من توی پست قبل ترم گذاشتم بکنم زیر X_Shamsi و value دوم خط میکشه . باید کدی که گذاشتی به جای
همون کدی که گذاشتم جایگزین کنم دیگه .
یا اینکه اگه منظورت اینه که علاوه بر تغییر کد بالا قسمت زیر رو هم :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مثل زیر بکنم .اونوقت در قسمت New کلاس Events زیر Shamsi خط میکشه و کلا خیلی خطا پیش میاد .
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ولی اگه کد رو کامل بذاری دوباره فکر کنم بهتر باشه . راستی خودت با این کد نتیجه میگیری .
سلام
من کد خاصی ندارم که بگذارم
تو آخرین نسخه کدت را بگذار من یه نگاهی می کنم ببینم چه باگ هایی دارد و ...
shadmehrshadow1
07-08-2010, 16:48
این تقریبا همون کد اولیه هست که دارم استفاده میکنم :
کلاس Events:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کلاس GHamari :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کلاس Shamsi :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کلاس Miladi :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کلاس IInfo :
Public Interface IInfo
Property Day() As String
Property Month() As String
Property Events() As String
Property Holiday() As String
Property Dates() As String
Property PicturePath() As String
End Interface
و کد درون فرم در دکمه ی Add :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا این کد رو طوری تغییر بدید که وقتی یه مقداری رو add کردیم روی مقدار اولی اضافه نشه .
و بشه از فایل خوند و موقع خوندن مقدار ها بره توی ArrayList مثلا 5 تا ArrayList تععین کنیم . هر کدوم برای یه مقدار مثل ماه ، روز و ... .
shadmehrshadow1
11-08-2010, 10:05
کسی نیست .تورو خدا کمکم کنید .خیلی لازمش دارم.
سلام.
من متوجه نمیشم شما دارید دقیقا چی کار میکنید؟
تبدیل تاریخ میسازید؟
shadmehrshadow1
13-08-2010, 10:15
نه یه فایل XMl که رخداد های ماه های قمری و شمسی و میلادی توش هست و میشه ازش خوند و توش نوشت . همه رو توی پست های قبل توضیح دادم
سلام
یه فایل XMl که رخداد های ماه های قمری و شمسی و میلادی توش هست و میشه ازش خوند و توش نوشت
گمانم نمونه کد کاملی که بیش از یک ماه پیش در پست 16 ام معرفی کردم دقیقاً همین کار را انجام میداده!
فقط کافی بوده کمی بررسی کنید و ببینید چه کدهایی دارد و چطور انجام داده!
موفق باشید.
سلام
ببخشید کمی دیر شد ...
من کد دوست عزیز H2 رو ندیدم ولی ایشان استاد من در برنامه نویسی هستند و کد بهتر احتمالا همان است!
کدی که گذاشتید رو به این شکل تغییر بدید:
کلاس Events :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دکمه ADD :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته لازم نیست هر بار در متد Add کلاس Events رو new و Load کنید...
موفق باشید
shadmehrshadow1
13-08-2010, 17:24
بی نهایت متشکرم .خیلی خوب کارکرد .
ممنون میشم اگه نحوه خوندن از فایل XML رو هم بگید . میخوام هنگام خوندن از فایل مقدار ها به ArrayList بره . برای هر مقدار یه
متغیر ArrayList وجود داشته باشه که اطلاعاتش توش بره .
البته مبخوام این خوندن رو بتونم بر اساس هر یک از تگ ها تعییین کنم . مثلا خوندن بر اساس تگ <Shamsi> و یا خوندن بر اساس کا فایل .
ممونون میشم اگه این لطف رو هم در حق من بکنید .
و همین طور متشکرم از آقای _H2_ کد خوبی بود ولی اون چیزی که من میخواستم دقیقا نبود. با یان حال متشکرم.
shadmehrshadow1
15-08-2010, 17:28
سلام .
نیستی . تا اینجا که واقعا ازت ممنونم . ولی ممنون میشم بقیه اش رو هم بهم کمک کنی.
سلام
ولی اون چیزی که من میخواستم دقیقا نبود
اگر زمانی مشکلی با ان سمپل و سوالی روی ان سمپل داشتید، در خدمت هستم.
میخوام هنگام خوندن از فایل مقدار ها به ArrayList بره . برای هر مقدار یه
متغیر ArrayList وجود داشته باشه که اطلاعاتش توش بره .
البته مبخوام این خوندن رو بتونم بر اساس هر یک از تگ ها تعییین کنم . مثلا خوندن بر اساس تگ <Shamsi> و یا خوندن بر اساس کا فایل .
سلام:11:
اگر حجم اطلاعات داخل فایل xml پایین است می توانید تمامش را به همان روش (متد Save و Load ) بگیرید و از همان قسمتی که می خواهید استفاده کنید(که کد کمتر و ساده تری هم دارد)
ولی اگر حجم بالاست و یا به هر دلیلی می خواهید قسمتی از فایل xml را بخوانید می توانید از کلاس XmlTextReader استفاده کنید...
مثلا لینک زیر نحوه استفاده از XmlTextReader رو کامل نشون داده:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
shadmehrshadow1
16-08-2010, 10:18
میشه گفت تقریبا حجم اطلاعات زیاد هست .چون 365 روز از تازیخ شمسی هست و 365 تا برای قمری و میلادی.
حالا از این گذشته همون طور که گفتم من میخوام فقتی اطلاعات رو میخونم بره توی ArrayList و بتونم بر اساس یک تگ یا کل تگ ها اطلاعات رو بخونم .ممنون میشم یه کد خودتون در رابطه با همین کد بزارید.
از آقای _H2_ هم متشکرم.
shadmehrshadow1
16-08-2010, 15:42
ببینید بزارید بگم که دقیقا چی میخوام .
من میخوام که بتونم فایل XML رو بخونم . به طوری که بتونم تعیین کنم که از تگ شمسی بخونه یا از تک قمری و یا از کل فایل بخونه .
حالا من میخوام وقتی که اطلاعات داره خونده میشه بره توی یه لیست ویو لیست بشه و هر کدوم هم بره توی ستون خودش . مثلا ستون های
Day,Month,Event و ... . دقیقا میخوام که بره توی لیست ویو نه کنترل دیگه . که فکر کنم ArrayList راه خوبی باشه .
و اینکه بشه از توی فایل یا حتی از توی لیست ویو سرچ کرد . و بشه سرچ رو بر اساس Day,Month,Event و یا مخلوطی از اینها تعیین کرد .
میخوام به دوصورت دیگه هم بشه سرچ کرد یکی اینکه وقتی مثلا بر اساس Month سرچ میکنیم . وقتی حرف "ف" رو نوشتیم . اون خط هایی
رو که توش کلمه "ف" وجود داره رو بده مثل "فروردین". و اگه حرف "ر" رو نوشتیم خط هایی رو که توش حرف "ر" وجود داره رو بده مثل "فروردین" .
و یکی دیگه اینکه وقتی براساس Date سرچ میکینیم . وقتی دقیقا یه کلمه ای رو نوشتیم جواب بهمون بده . مثلا وقتی نوشتیم "1/1" فقط اون
خطی که Date اون "1/1" هست رو بده .
نمیدونم که خوب توضیح دادم یا نه . ولی اگه در این رابطه هم کمکم کنید مشکلم به کل حل میشه .
راستی اگه میشه یه کد هم بزارید که بشه فایل رو ویرایش کرد .
shadmehrshadow1
21-08-2010, 08:46
سلام
چه خبر از زحمت های ما .نیستی.
ببینید بزارید بگم که دقیقا چی میخوام .
من میخوام که بتونم فایل XML رو بخونم . به طوری که بتونم تعیین کنم که از تگ شمسی بخونه یا از تک قمری و یا از کل فایل بخونه .
حالا من میخوام وقتی که اطلاعات داره خونده میشه بره توی یه لیست ویو لیست بشه و هر کدوم هم بره توی ستون خودش . مثلا ستون های
Day,Month,Event و ... . دقیقا میخوام که بره توی لیست ویو نه کنترل دیگه . که فکر کنم ArrayList راه خوبی باشه .
و اینکه بشه از توی فایل یا حتی از توی لیست ویو سرچ کرد . و بشه سرچ رو بر اساس Day,Month,Event و یا مخلوطی از اینها تعیین کرد .
میخوام به دوصورت دیگه هم بشه سرچ کرد یکی اینکه وقتی مثلا بر اساس Month سرچ میکنیم . وقتی حرف "ف" رو نوشتیم . اون خط هایی
رو که توش کلمه "ف" وجود داره رو بده مثل "فروردین". و اگه حرف "ر" رو نوشتیم خط هایی رو که توش حرف "ر" وجود داره رو بده مثل "فروردین" .
و یکی دیگه اینکه وقتی براساس Date سرچ میکینیم . وقتی دقیقا یه کلمه ای رو نوشتیم جواب بهمون بده . مثلا وقتی نوشتیم "1/1" فقط اون
خطی که Date اون "1/1" هست رو بده .
نمیدونم که خوب توضیح دادم یا نه . ولی اگه در این رابطه هم کمکم کنید مشکلم به کل حل میشه .
راستی اگه میشه یه کد هم بزارید که بشه فایل رو ویرایش کرد .
سلام
اگر می خواهید تکه به تکه کد xml را دریافت و پردازش کنید کد زیادی خواهد داشت و من هم نمی توانم (وقتش را ندارم) ولی برای راهنمایی می توانید از همان سایتی که در چند پست قبل معرفی کردم استفاده کنید و نهایتا اگر کدی نوشتید و جایی به مشکل برخوردید من تا جایی که بتوانم کمک می کنم.
راه دیگر هم اینست که تمام xml را بریزید داخل آرایه و آن را به view مورد نظرتان در فرم برنامه منتقل کنید.(کد این یکی همان متد Load است)
موفق باشید
shadmehrshadow1
22-08-2010, 10:54
ممنون .میشه بگید چه طور از متد لود استفاده کنم . یعنی این طوری میشه :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یا یه چیزی شبیه این . فکر نکنم این درست باشه چون نتیجه نمیده .
شما بعد از فراخوانی متد Load تمام xml رو ریختید توی لیست های Shamsi و Ghamari و Miladi و حالا می تونید پردازشتون (جستجو / ویرایش / حذف ...) را روی این لیست ها انجام بدید و بعد از اتمام کار اگر چیزی را تغییر دادید متد Save را فراخوانی کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
shadmehrshadow1
23-08-2010, 16:28
سلام
خیلی خیلی ممنون از کمک هاتون .واقعا نمیدونم که چه جوری باید ازتون تشکر کنم .
فقط یه سوال دیگه .من تمام داده ها و سطر ها رو ریختم توی ArrayList . مثل زیر
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا میخوام یه بخش سرچ درست کنم . به صورت زیر:
اگه یه حرف رو نوشتم مثلا "ف" اونوقت از توی SH_XEvent جستجو کنه و سطری هایی رو که توش حرف "ف" داره رو پیدا کنه . بعد
تمام اطلاعات اون سطر ها رو توی یه لیست ویو لیست کنه .
البته من یه کد دارم ولی خوب کار نمیکنه :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای نمایش نتیجه جستجو بهتر است از DataGridView استفاده کنید
آن متغییر events که در رویداد دکمه Add تعریف کردی رو سراسری تعریف کن و در زمان load فرم متد load شی events رو هم اجرا کن
حالا اگر یه تکست باکس برای جستجو و یه GridView برای نمایش داشته باشی برای جستجو کافیه کدی مثل کد زیرو در رویداد TextChanged آن بنویسید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
shadmehrshadow1
24-08-2010, 13:28
سلام
دستت درد نکنه .
حالا میشه کاری کرد که جستجو بر اساس مخلوطی از Event , Month , ... باشه .
و اینکه نمیشه همین کار رو با لیست ویو کرد . آخه ظاهرش بهتره . اگه نه که هیچی
---------- Post added at 02:28 PM ---------- Previous post was at 02:25 PM ----------
ممون دستت درد نکنه .
میخواستم بدونم میشه جستجو رو ترکیبی انجام داد. مثلا جستجو براساس Event, Month , ... باشه .
حالا نمیشه همین کار ها رو با لیست ویو انجام داد . آخه ظاهرش بهتره
shadmehrshadow1
25-08-2010, 15:05
نیستی؟؟؟؟؟
حالا میشه کاری کرد که جستجو بر اساس مخلوطی از Event , Month , ... باشه .
و اینکه نمیشه همین کار رو با لیست ویو کرد . آخه ظاهرش بهتره . اگه نه که هیچی
ظاهر فرم جستجو را می توانید به هر شکلی بسازیید (مثلا می توانید یک تکست باکس برای Event و یک تکست باکس برای Month و یک دکمه برای عمل جستجو داشته باشید و کد زیرو در رویداد دکمه بزنید ...)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کنترلر DataGridView امکانات بیشتری برای کار با دیتا دارد (از جمله امکان بایند کردن لیست ها و جداول) و نهایتا کد کمتری برای نمایش لازم است ولی اگر می خواهید می توانید لیستی که Query بالا بر می گردونه را بریزید توی ListView .
shadmehrshadow1
26-08-2010, 10:54
اگر می خواهید می توانید لیستی که Query بالا بر می گردونه را بریزید توی ListView .
اگه زحمتی نیست میشه بگید چه جوری؟
کافی است نتیجه ی جستجو را در یک متغییر بریزید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و حالا آیتم های متغییر list رو دقیقا همانگونه که در پست 47 خودتان انجام دادید بریزید توی ListView .
shadmehrshadow1
27-08-2010, 10:30
مرسی.
من میتونم اطلاعات فایل XML رو ویرایش کنم . ولی نمیتونم حذفش کنم . میشه بگی چه جوری میشه یه خطی رو ازش حذف کرد.
برای حذف می توانید از متد های Remove لیست استفاده کنید
مثلا اگر خود آیتم حذفی را دارید برای حذف :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و اگر ایندکس آن در لیست را دارید :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید
shadmehrshadow1
28-08-2010, 13:43
این روش جستجوی ترکیبی رو نمیشه توی یه تکست باکس ایجاد کرد ؟
و اینکه اون کدی رو که برای ریختن اطلاعات گرید ویو به لیست ویو گزاشتی رو نفهمیدم منظورت چیه . میشه یکم بیشتر توضیح بدی و
کد کامل تری رو بزاری ؟
این روش جستجوی ترکیبی رو نمیشه توی یه تکست باکس ایجاد کرد ؟
دقیقا که نمی دونم می خواهید چه کنید
ولی می توانید یک چیزی در تکست باکس تایپ کنید و آن را در چند لیست جستجو کنید
یا کلیدهای متفاوت را با کاراکتری از هم جدا کنید تا هنگام جستجو بتوانید تشخیص دهید کدام برای کدام است!
کافی است نتیجه ی جستجو را در یک متغییر بریزید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدو حالا آیتم های متغییر list رو دقیقا همانگونه که در پست 47 خودتان انجام دادید بریزید توی ListView .
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.