PDA

View Full Version : ساخت ادیتور متن و ذخیره اطلاعاتش در بانک



parsa118
جمعه 05 فروردین 1390, 16:13 عصر
سلام و خسته نباشید

من خیلی گشتم ولی چیزی نتوستم پیدا کنم شاید هم من با کلمات درستی جستجو نکردم.
من دارم یک برنامه می نویسم تقریبا تو مایه های بایگانی نامه کاربر یک متنی رو تایپ میکنه بعد ویرایش میکنه مثلا قسمتی از این متن رو BOLD میکنه یا قسمت دیگه ای رو رنگی میکنه و از این جور چیزا
برای این کار من اومدم RichText استفاده کردم و مشکلی در اعمال تغییرات رو متن نبود یعنی کاربر راحت می تونست هر قسمت متن رو تغییر بده ولی یک مشکل داشت که در هنگام ذخیره در بانک sql این تغییرات ذخیره نمیشه !
بعد کلی جستجو و راهنمایی دوستان به این نتیجه رسیدم که باید از کدهای html استفاده کرد و تگ های html هم همراه با متن در دیتابیس ذخیره بشه و موقع باز خوانی از دیتابیس هم این تگها برداشته باشه و متن همراه با فرمتهایی که قبلا کاربر داده نمایش پیدا کنه ولی در این مسئله مشکل دارم و نمی دونم باید چکار کنم
از دوستان خواهش داشتم اگر مثالی یا راهنمایی در این مورد دارند من رو بی نصیب نذارند
من در کل یک چیزی مثل ادیتور متن همین سایت برنامه نویس می خوام که اطلاعات رو در بانک ذخیره و بازیابی میکنه و فرمت بندی متن رو هم حفظ می کنه البته فرقش اینه که من در ویندوز می خوام این کار رو انجام بدم نه در وب !
یک چیزایی هم در مورد کنترل Web Browser در vb.net شندیم ولی اصلانمیدونم به کار من میاد یا نه
امیدوارم منظورم رو خوب رسونده باشم

reza_edu
جمعه 05 فروردین 1390, 18:51 عصر
سلام دوست من من اين كار رو انجام دادم يه راهنمائي جزئي الان ميكنم اگه نتونستي بگو تا بيشتر يگم . تا اونجا كه من از كدم يادم مياد(چون الان جلوم نيست ) شما فقت كافي كه از رايچ تكس باكس خاصيت RTF رو استفاده كني همين نه چيزه ديگه ايد مثلا كد زير :dim str as string
str=richtextbox1.rtf
و زماني هم كه ميخواي قرار بدي
richtetbox1.rtf=str همين
نوع فيلد ديتابيس هم nvarchar(max) بايد باشه (بهتره)
دليل اينكه الان بطور يقين كد رو مطمئن نيستم اينه كه ويندوز سيستم اصليم پريده و به vs دسترسي ندارم اما تا شب درست ميشه اگه خواستي كد اصلي رو ميزارم.

parsa118
جمعه 05 فروردین 1390, 19:27 عصر
آقا بسیار بسیار ممنونم جواب میده
ولی موقع ذخیره متن با خطا های زیادی هم برخورد میکنم مثلا Incorrect syntax near
فرمت فیلد دیتابیس هم nvarcher (max) هستش
بازم گر نمونه کد کاملتر یا یک مثال کوجک برام بذارید خیلی لطف کردید تا همینجا هم منت گذاشتید
واقعا ممنون

reza_edu
جمعه 05 فروردین 1390, 19:46 عصر
چه منتي داداش اين حرف رو نزن وضيفه است ولي شرمنده تا براي نمونه تا 10 يا 11 صبر كن چون سيستمم يه ويروس ناناز افتاده بود كه الان كشف كردم(خير سرم) چه جوري ازبين ببرم دارم ويندوز نصب ميكنم تموم شد تموم شد ميزارم بخشيد خلاصه ولي يه سوال ه امتحان كن چون فكر كنم مشكل زمانيه كه تو ديتابيس ميريزي اين آزمايش رو انجام بده اگه جواب داد بدون از همون قسمت هست:
دوتا فرم درست كن كه تو هردو يه رايچ باكس باشه بعد تو فرم اول يه متغير تعريف كن كه گلوبال باشه و از نوع استرينگ يه باتن تو هر دو فرم تو فرم اول باكليك رو باتن متن رايچ رو بريز تو متغير و با كليك رو باتن فرم دوم باكليك مقدار متغير رو بريز تو رايچ .
اين امتحان رو انجام بده و اين يكي موقع ريختن تو ديتابيس اول بريز تو يه متغير استرينگ بعد جواب رو بگو.

parsa118
جمعه 05 فروردین 1390, 23:32 عصر
رضا جان یکم قاطی کردم من منتظر برنامه نمونه تون می مونم :ناراحت:
خیلی ممنون

reza_edu
شنبه 06 فروردین 1390, 20:30 عصر
سلام ببخشيد دير شد بد قولي كردم اين نمونه برنامه گذاشتم اگه سوالي داشتي در خدمتم. با vs 2008 هست.:ناراحت:

parsa118
یک شنبه 07 فروردین 1390, 01:49 صبح
سلام

آقا رضا بسیار ممنونم
برنامه شما به خوبی جواب میده
شما از دستور update استفاده کرده بودید من اومدم از روش شما برای insert استفاده کنم هر کار کردم نشد رضا جان
خواهش داشتم اگر امکانش هست یک نمونه برنامه که همین ها رو insert کنه مثلا در id و test و name اطلاعات جدید وارد کنه و یکی از فیلدها هم از همین richtext بخونه برام بذارید واقعا ممنونتون میشم
شرمنده اینقدر اذیت میکنم

reza_edu
یک شنبه 07 فروردین 1390, 23:47 عصر
سلام فكر كنم اين همونه كه خواسته بوديد .اين توضيح رو بدم كه فيلد ايدي اتو نامبر هست و هر يه دونه بالا ميره تا الان هم سه ركورد ثبت شده ركوردي كه شما بعدا ثبت ميكنيد ميشه چهار و به همين ترتيب ميره بالا. باقي كار با خدتون.

parsa118
دوشنبه 08 فروردین 1390, 00:10 صبح
آقا لازم بود که حتما پست بزنم برای تشکر واقعا ممنون
امیدوارم دوستانی که مثل من مشکل دارند در این مورد از مثال های که دوست عزیزمون آقا رضا گذاشتند استفاده کنند به درستی هم جواب میده

asif1358
جمعه 12 فروردین 1390, 15:44 عصر
سلام
راه درست و کامل آن است که فایل rtf را ابتده به آرایه ای از بایت ها ذخیره کرده و سپس در بانک ذخیره کنیم؛ من خودم اقسام فایل (حتی فایل های صوتی و تصویری) را به همین صورت به صورت کامل و سالم در بانک ذخیره کرده و برگردانده ام.