ورود

View Full Version : سوال: تابعی که پاراگراف بندی کنه یا به هر شکل نمایش رو سرو سامان بده



shocraneh
جمعه 22 آبان 1388, 11:02 صبح
من از اکسس و ویبی استفاده می کنم . متن نسبتا بلندی رو در پایگاه ذخیره کردم
پاراگراف بندی متن بهم می ریزد . دنبال تابعی می گردم که نمایش رو سر رو سامان بده
وقتی به نقطه رسید بره خط بعد
می خواستم لیست این توابع رو (مثلا مثل splite که کاریه خوبی داره)از msn در بیارم متاسفانه نتونستم اگه دوستان شیوه کار رو نشون بدن ممنون می شم

shocraneh
شنبه 30 آبان 1388, 01:45 صبح
لطفا کمک کنید یه متن توسط کاربر از طریق تکس ذخیره و در صفحه بعد همون متن رو باید به کاربر نشون بدم که پاراگراف بندیش مهمه . برای نمایش نمی شه گفت وقتی به نقطه رسیدی برو خط بعدی.چون تمام نقطه ها مد نظر من نیست . اگه بخام از جایی که اینتر می خوره پاراگراف در نظر بگیزه . چه جوری کد نویسی کنم ؟ ؟؟؟

اگه بخام ناچارا از split استفاده کنم اینتر رو چه جوری معرفی کنم
پیشاپیش ممنون

Saber_Fatholahi
شنبه 30 آبان 1388, 11:56 صبح
yourstring = yourstring.Replace("\n", "<br/>"

اینجوری اینتر توی متن شما ذخیره میشه و به اون صورتی که میخوای نمایش داده میشه یعنی هر جا اینتر زدی کلید اینتر شما ذخیره میشه البته موقع ویرایش باید عکس این عمل انجام بدین
موفق باشین

shocraneh
شنبه 30 آبان 1388, 21:50 عصر
من از این روش استفاده کردم در اکسس که چیزی بابت کلید ینتر ثبت نمی شد . و در نمایش هم همه رو پشت سر هم می زد . جدای از این گفته بودید در ویرایش برعکس کنیم منظورتون هنگام نمایشه ؟؟
یعنی
Label90.Text = dr("productMatn").ToString().Replace("<br/>", "\n")
اما فایده نداره . اگه منظور دیگه ای دارید بگین .
یه سوال :
MsgBox(dr("productMatn").ToString().Replace("<br/>", "\n"))
MsgBox(dr("productMatn").ToString())
MsgBox(Label90.Text)

چه در مواقعی که از کد شما استفاده کردم یا نکردم پاراگراف بندی درسته ولی .... البته می دونم ربطی هم نداره.
لطفا راهنمایی

shocraneh
شنبه 30 آبان 1388, 22:08 عصر
من خودم دستی <br/> را در اکسس اضافه کردم و
Label90.Text = dr("productMatn").ToString( نمایش درستی داره
اما با کدی که شما دادید <br/> را در اکسس ذخیره نمی کنه

Saber_Fatholahi
یک شنبه 01 آذر 1388, 12:17 عصر
دویت عزیز شما کارهاو برعکس انجام دادی روشی که به کار بردی برای ویرایشه نه درج

hezare
یک شنبه 01 آذر 1388, 16:49 عصر
دوست عزیز

کاری رو که اقای صابر گفتن شما باید در VB انجام بدین :
Dim txt
txt="This is a beautiful day!"
document.write(Replace(txt,"\n","<br />"))





در C#‎ به نحو زیر است :
using System;
using System.Text.RegularExpressions;

string myString;
myString = "This is a test.";
myString = Regex.Replace(myString, " \n", "<br />");

در عین حال اگر تصمیم دارید در Access این کار انجام شود سرچ ساده "Replace Function access" توی گوگل پاسخ شما رو خواهد داد

shocraneh
یک شنبه 01 آذر 1388, 18:50 عصر
شاید بد منظورم رو رسوندم من replace رو در ویبی اجرا می کنم اما جواب نگرفتم با خودم گفتم شاید insert درسته و تو نمایش مشکل داره برای همین دستی خودم در اکسس این کارو انجام دادم تا نمایش رو ببینم و دیدم که درسته
و اما من حالا می خام روی ویبی این کارو انجام بدم کد رو اجرا می کنم اما به جای اینتر چیزی در اکسس ثبت نمی شه و نمایش هم.ن طور پشت سر همه ؟؟؟؟؟از کد تاپیک 3 برای ثبت و 5 برای نمایش اطلاعات استفاده کردم
آقای صابری من متوجه نمی شم میشه دقیقا بگین ثبت و ویرایش به چه شکله؟؟

Himalaya
یک شنبه 01 آذر 1388, 19:28 عصر
فرض کن textbox12 تکست باکسی هست که میخوای توی اون اینتر رو تبدبل به <br /> کنی و بعد تو دیتابیس ذخیرش کنی و البته بعد از ذخیره هم اونو به حالت اول بر میگردونی ... دکمه button5 هم عمل ذخیره رو قراره که انجام بده

تکست باکست هم که حتما multiline هست دیگه... چون اینتر فکر نمیکنم روی تکست باکس single line
تاثیری داشت باشه ... اگه اشتباه میگم دوستان بگن ... چون این یه قلم رو دقیق نمیدونم --- یعنی single line امتحانش نکردم ---



protected void Button5_Click(object sender, EventArgs e)
{
TextBox12.Text = TextBox12.Text.Replace("\r\n", "<br />");
try
{
// insert code here
}
catch
{
Label1.Text = "error";
}
finally
{
connection.Close();
TextBox12.Text = TextBox12.Text.Replace("<br />", "\r\n");
}
}



و موقع نشون دادن مقدار مورد نظر مثلا تو یه لیبل اگه اون مقدار رو با reader از دیتابیس بگیری و تو لیبل نشون بدی خود مرورگر تگهای مورد نظر رو میشناسه و کاری رو که لازم باشه انجام میده و احتیاجی نیست که برعکس کار بالا رو انجام بدی



Label1.Text = reader.GetString(0);


این کدیه که من ازش استفاده کردم و جواب گرفتم ...

fozolefozola
یک شنبه 01 آذر 1388, 22:09 عصر
براي خواندنش از ليبل استفاده كنم؟

Himalaya
یک شنبه 01 آذر 1388, 22:21 عصر
دوست داری با لیبل نشون بده ... دوست داری تو گرید قرارش بده ... اصلا هر کاری دوست داری میتونی بکنی :چشمک:

shocraneh
سه شنبه 03 آذر 1388, 21:56 عصر
مطمئنا این کد درسته ولی نموندم چرا <br/>را در پایگاه ثبت نمی کنه ؟
اگه ثبت کنه هیچ مشکلی نیست . البته دوستان رو این قضیه حتما توجه دارند هر جوری که ثبت رو انجام بدی
(چه با استفاده از replace چه بدون اون ) در یه تکس باکس درست نمایش داده میشه (چون وقتی اینتر میزنی تو پایگاه چند خطی می خوره ). مشکل من اینه که تو لیبل درست نمایش نمیده . یعنی <br/>اصلا تو جدول ثبت نشده که بخاد لحاظ بشه
من رو این شک کردم که اصلا اینتر رو تشخیص نمیده


Dim matn As String = Txtmatn.Text.Replace("\n", "</br>")
یا
Dim matn As String = Txtmatn.Text.Replace("\r\n", "</br>")
یه چیز دیگم فکر منو مشغول کرده . مگه متغیر string نیست ؟ پس باید وقتی خط به خط اجراش می کنی </br>یا \n رو نشون بده

shocraneh
سه شنبه 03 آذر 1388, 22:21 عصر
حدسم درست بود اصلا اینتر با /n قابل شناسایی نیست . چون کد زیر رو خط به خط اجرا کردم و از می پرید

'For i As Byte = 1 To 20
' If (Txtmatn.Text.ToString = "\n") Then
' Dim matn1 As String = Txtmatn.Text.Replace("\n", "<br/>")
' End If
'Next

پس اینتر رو چه طوری شناساییش کنم ؟؟ البته این که دوستان گفتند جواب گرفتند نمی دونم ؟!!

Saber_Fatholahi
سه شنبه 03 آذر 1388, 22:23 عصر
اخه دوست عزیز این احتمال هست که شما به صورت مستقیم داده تکست باکس خودتو با استفاده از ویزارهای داتنت داری میریزی توی دیتابیس

وبرای اینکه این کلید اینتر نمایش داده نمیشه توی لیبل واسه اینه که توی برنامه های تحت وب کلید اینتر یعنی br با این تگ شما میتونی بری به خط بعد نه چیز دیگه میتونی دستی امتحانش کنی
موفق باشی

shocraneh
سه شنبه 03 آذر 1388, 23:39 عصر
آقا من می خام یه متن از یه تکس ئاخل اکسس ریخته بشه و بعد توی یه صفحه دیگه روی لیبل به صورت مرتب نمایش داده بشه . بله این رو می دونم اگه ,br/> تو اکسس ثبت بشه درست نمایش داده میشه . حالا چه طوری این ثبت رو انجام بدم. منظورتون چیه مستقیم می ریزم ؟؟؟

Dim matn As String = Txtmatn.Text.Replace("\n", "<br/>")
Cmd.CommandText = "Insert into Tblproduct(producttitr,productmatn,productpriority ,productlink,productpic) Values (@titr,'" + matn + "' ,@priority,@link,@pic)"

salehbagheri
پنج شنبه 05 آذر 1388, 11:37 صبح
دوست عزيز! از n\ فقط در سي شارپ ميشه استفاده كرد و در VB جواب نميده!

بجاش از كد زير استفاده كنيد!


Txtmatn.Text.Replace(Environment.NewLine, "</br>")

shocraneh
پنج شنبه 05 آذر 1388, 16:31 عصر
ضمن تبریک عید واقعا دستتون درد نکنه