ورود

View Full Version : سوال: جدا کردن متن درون تکست باکس



Snoopboy
شنبه 21 خرداد 1390, 19:02 عصر
با سلام
من یک برنامه می خوام که 3 تا جکله یا کلمه رو توی تکست باکس بگیره و اونا رو تفکیک کنه توی 3تا تکست باکس دیگه مثل عکس زیر

http://yahooenter.tk/images/95u4cfjwcy3nbsbjy53.jpg

ولی مشکل اینجاست که اگه بخوام از تابع Split با استفاده از جدا کننده " " استفاده کنم ممکنه که این 3 تا جمله خودشون Space داشته باشن . همونطور که می بینید جمله آخر رو فقط Chera رو برگردونده
اگه کمک کنید ممنون میشم

سوال بعدیم اینه که برای نوشتن تابع Savesetting برای لیست ویو میشه یک نمونه بدید؟

pcdownload.bloghaa.com
شنبه 21 خرداد 1390, 22:58 عصر
اون موقع که دیگه کلمه نمیشه کلمات به وسیله space از هم جدا میشن .
بهتره واضحتر توضیح بدین با یه مثال مثلا فلان جمله میخوایین چطوری بشه.

Snoopboy
شنبه 21 خرداد 1390, 23:55 عصر
ببین شما الان عکس رو ببین. من می خوام توی تکست 1 3تا جمله بنویسم برای مثال
Text1 = Salam Chetori , Che Khabar , Chera Nemiay
تا اینجا که درسته
حالا هر جمله که توی یک تکست باکس باشه
Text2 = Salam Chetori
Text3 = Che Khabar
Text4 = Chera Nemiay
اینو می خوام هر جمله توی تکست باکس 1 بشه 3 تا جمله توی بقیه تکست باکس ها

محسن واژدی
یک شنبه 22 خرداد 1390, 01:52 صبح
سلام علیکم
اینگونه که در پست شماره 1 وجود دارد توسط تابع split امکان پذیر نمیباشد مگر آنکه از کاراکترهایی متفاوت بجای space ها به عنوان جدا کننده استفاده کنید همانند متن نوشته شده در پست شماره 3:
Salam Chetori,Che Khabar,Chera Nemiay

Snoopboy
یک شنبه 22 خرداد 1390, 02:07 صبح
بله دوست عزیز ولی من Space رو نیاز دارم با کاراکتر های دیگه می تونستم انجام بدم

returnx
یک شنبه 22 خرداد 1390, 08:58 صبح
من چند وقت پیش می خواستم ببینم Access چطور فلید های Text رو می تونه به صورت Combo box بده ، منظورم در قسمت LookUp Access هست که یکسری کلمات رو می نویسیم بعد با ";" از هم جدا میکنیم بعد اون در جدول کلمات رو در Combo نشون میده...
من این تیکه برنامه رو نوشتم که یک رشته در Text میگیره بعد کلمات رو جدا میکنه و بعد در Combo میریزه به طور مثال اگه بدید Ali;Ahmad;Reza اون تو Combo بهتون Ali,Ahmad, Reza رو میده ....
این کدش:

Dim counter As Integer
Dim current_ch As String * 1
Dim token As Integer
Private Sub Command1_Click()
While counter <= Len(Text1.Text)
current_ch = Mid(Text1.Text, counter, 1)
If current_ch = ";" Then
Combo1.AddItem Mid(Text1.Text, token, counter - token)
token = counter + 1
End If
counter = counter + 1
Wend
Combo1.AddItem Mid(Text1.Text, token, counter - token)

End Sub
Private Sub Form_Load()
counter = 1
token = 1
End Sub
شما برای اینکه برنامه فاصله رو تشخیص بده ، کافیه بجای این:

If current_ch = ";" Then
از این استفاده کنید:

If current_ch = " " Then
اگه دقت کنید بین کتیشن ها یک Space هست...
بقیش دیگه با خودت...
موفق باشید.../

pcdownload.bloghaa.com
یک شنبه 22 خرداد 1390, 11:13 صبح
بله دوست عزیز ولی من Space رو نیاز دارم با کاراکتر های دیگه می تونستم انجام بدم
خب داداش باید قاعده ای داشته باشه تا برنامه بتونه اینکارو انجام بده.اگه قاعده ای براش داری بگو تا کد نویسیشو کمک کنیم در غیر اینصورت نوشتن چنین کدی عملی نیست
آدم که نیست تشخیص بده این یه جملست و اون یکی یه جمله دیگه.باید یه قانونی برای جدا کردن جملاتت داشته باشی.مثلا بعد از هر جمله دوتا space بزاری یا ...

Snoopboy
یک شنبه 22 خرداد 1390, 11:53 صبح
ممنون دوست عزیز این کدی که شما قرار دادی هم کار همون Split رو می کنه. میشه یک کاری کرد . وقتی جمله اول رو گرفت ، طولش رو بدست بیاره و بفرسته تکست 1 ، جمله دومم طولش رو بدست بیاره و بفرسته تکست 2 + 2تا اسپیس کنه و هرچی که موند رو بفرسته تکست 3
اینو میشه نوشت؟

Mr'Jamshidy
یک شنبه 22 خرداد 1390, 14:13 عصر
ممنون دوست عزیز این کدی که شما قرار دادی هم کار همون Split رو می کنه. میشه یک کاری کرد . وقتی جمله اول رو گرفت ، طولش رو بدست بیاره و بفرسته تکست 1 ، جمله دومم طولش رو بدست بیاره و بفرسته تکست 2 + 2تا اسپیس کنه و هرچی که موند رو بفرسته تکست 3
اینو میشه نوشت؟

میشه نوشت ولی عملا کار بیهوده ایه میرسیم سر خونه اول

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

Snoopboy
یک شنبه 22 خرداد 1390, 14:33 عصر
تقریبا با کمک ms2222 حل شد . ممنون
ولی ممکنه اون تابع Savesetting و Getsetting رو برای Listview توضیح بدید که چطوری بنویسمش

محسن واژدی
یک شنبه 22 خرداد 1390, 15:01 عصر
ولی ممکنه اون تابع Savesetting و Getsetting رو برای Listview توضیح بدید که چطوری بنویسمش

در صورت امکان بیشتر توضیح دهید یعنی قصد استفاده برای چه بخشی از ListView را دارید؟ مثلا تعداد آیتم ها را ذخیره کند، آیتم مشخصی را ذخیره کند و یا ...

Mr'Jamshidy
یک شنبه 22 خرداد 1390, 15:08 عصر
تابع SaveSetting و GetSetting تنها کاری که میکنن اینه که یک مقدار رو داخل رجیستری ویندوز (در یک آدرس مشخص) ذخیره میکنه (SaveSetting) و در مواقع نیاز اون رو از رجیستری میخونه(GetSetting)

و این دو موضوع هیچ ارتباطی به ListView نداره مگر اینگه اطلاعات لیست رو دونه دونه داخل رجیستری بنویسی و در اجرای پروژه یا هر زمانی که خواستی باز دونه دونه بخونی و به لیست اضافه کنی

البته اگر نیازت این باشه

Snoopboy
یک شنبه 22 خرداد 1390, 15:15 عصر
جناب Mr Jamshidi شما همش ساز مخالف می زنی و هی نا امید می کنی مارو :لبخند:
اخه من دیدم که یه جا لیست ویو رو با savesetting و getsetting ذخیره می کردن. همه ایتم ها و Column ها و imagelist مرتبط با اون لیست رو . حالا دارم دنبالش می گردم
اینطوری می خوام باشه

returnx
یک شنبه 22 خرداد 1390, 21:21 عصر
اخه من دیدم که یه جا لیست ویو رو با savesetting و getsetting ذخیره می کردن. همه ایتم ها و Column ها و imagelist مرتبط با اون لیست رو . حالا دارم دنبالش می گردم
اینطوری می خوام باشه
خوب چه کاریه !؟
چرا از فایل استفاده نمیکنید !؟

Snoopboy
دوشنبه 23 خرداد 1390, 01:10 صبح
برای اینکه من دنبال این کد خیلی گشتم ولی یا با خطا مواجه شدم یا اصلا نشده . می خوام این رو یاد بگیرم

Mr'Jamshidy
دوشنبه 23 خرداد 1390, 15:13 عصر
برادر من ساز مخالف نمیزنم

یا کاری نکن یا اگر میخوای انجام بدی درست انجام بده در ضمن توضیح دادم نا امید که نکردم :ناراحت:

حالا شما 2 راه داری برای این کارت

1. تو فایل ذخیره کنی
2. تو رجیستری

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

حالا شما راه رو انتخاب کن ما هم سعی میکنیم نحوه حرکت تو مسیر رو به شما بگیم

Snoopboy
دوشنبه 23 خرداد 1390, 20:34 عصر
ما هم گوش میدیم به شما که تجربتون از بنده بیشتر هست. اگه ممکنه هر دو راه رو بگید . والا من پررو نیستم ولی خوب دوست دارم این رو یاد بگیرم
اون راه هم که موقع بسته شدن برنامه خودش اتوماتیک بدون درخواست از کاربر سیو کنه توی یک دفترچه و میقع باز شدن مجدد خودش اتوماتیک لود کنه

pcdownload.bloghaa.com
دوشنبه 23 خرداد 1390, 20:49 عصر
حالا اگه اسرار به ذخیره لیست ویو در ریجستری هست.
الان حوصله پرداختن به لیست ویو را ندارم پس یه مثال درباره لیست باکس میزنم بقیش با خودت:


Private Sub Command1_Click()
Dim x As String
x = List1.List(0)
For i = 1 To List1.ListCount - 1
x = x + Chr(7) + List1.List(i)
Next i
SaveSetting App.Title, "Setting", "List", x
End Sub
Private Sub Form_Load()
On Error Resume Next
Dim y As String
Dim p() As String
y = GetSetting(App.Title, "Setting", "List", "")
p = Split(y, Chr(7))
For i = 0 To UBound(p)
List1.AddItem p(i)
Next i
End Sub

همه خصوصیات هر عضو لیست ویو را میتونی همینطوری لیست کنی و در آخر همشونو یریزی تو یه متغیر و همون یک متغیر را یک بار ذخیره کنی.