PDA

View Full Version : رشته ها



peyman677
دوشنبه 10 تیر 1392, 12:45 عصر
سلام.
من دارم روی یک برنامه که دارای دو بخش سرور و کلاینت است کار می کنم.
من میخوام یک سری تنظیمات رو به کلاینت ارسال کنم. (رشته)

برای بازیابی چکار باید کنم مثلا چیزی مثل این رو ارسال کنم.

1500
500
150

چطور میتونم هر کدوم رو درون متغیر خودش قرار بدم.
ممنون

امین مستانی
دوشنبه 10 تیر 1392, 18:22 عصر
سلام ...

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

مثلا :
String1=Value1;String2=Value2;String3=Value3;

و سمت کلاینت هم با Regular Expression اونو پردازش کنید

موفق باشی

peyman677
دوشنبه 10 تیر 1392, 18:51 عصر
خیلی ممنون .متاسفانه اصلا با Regular Expression کار نکردم. اگر نمونه کدی در این باره دارید ممنون میشم.

امین مستانی
دوشنبه 10 تیر 1392, 20:08 عصر
یه توضیح کوچیک در مورد رگولار اکسپرشن :
ﻋﺒﺎرات ﺑﺎﻗﺎﻋﺪه روﺷﻲ اﻧﻌﻄﺎف ﭘﺬﻳﺮ ﺑﺮاي ﻛﺎر ﺑﺎ رﺷﺘﻪ ﻫﺎ و ﻣﺘﻮن اﺳﺖ. ﺑـﺎ اﺳـﺘﻔﺎده از اﻣﻜﺎﻧـﺎت ﻣﻮﺟﻮد در زﺑﺎن ﻋﺒﺎرات ﺑﺎﻗﺎﻋﺪه ﻣﻲ ﺗﻮان در ﻣﺘﻮن (ﺣﺘﻲ ﻣﺘﻮن ﺑﺴﻴﺎر ﻃﻮﻻﻧﻲ) ﻋﺒﺎرات ﺧﺎﺻﻲ را ﺟﺴﺘﺠﻮ، وﻳﺮاﻳﺶ، ﺣﺬف ﻳﺎ ﺟﺎﻳﮕﺰﻳﻦ ﻛﺮد . اﺳﺘﻔﺎده از ﻋﺒﺎرات ﺑﺎﻗﺎﻋﺪه در ﺑﺮﻧﺎﻣﻪ ﻫﺎﻳﻲ ﻛـﻪ ﺗﻌﺎﻣـﻞ زﻳـﺎدي ﺑـﺎ رﺷـﺘﻪ دارﻧﺪ ﻻزم و ﺣﺘﻤﻲ اﺳﺖ. و ویکیپدیا (http://fa.wikipedia.org/wiki/%D8%B9%D8%A8%D8%A7%D8%B1%D8%AA_%D8%A8%D8%A7%D9%82% D8%A7%D8%B9%D8%AF%D9%87)

برای این مثالی که من نوشتم الگو عبارت با قاعده اینطوری میشه :

String1=(.+?);String2=(.+?);String3=(.+?);

که در ویژوال بیسیک اینطوری میتونید استفاده کنید :


Imports System.Text.RegularExpressions

Dim Pattern As String = "String1=(.+?);String2=(.+?);String3=(.+?);"
Dim Expression As String = "String1=Value1;String2=Value2;String3=Value3;"

Dim SearchMatch As Match = Regex.Match(Expression, Pattern, RegexOptions.IgnoreCase)
If SearchMatch.Success = True Then
Dim Match1 As String = SearchMatch.Groups(1).Value
Dim Match2 As String = SearchMatch.Groups(2).Value
Dim Match3 As String = SearchMatch.Groups(3).Value
MsgBox("Match1 found : " & Match1)
MsgBox("Match2 found : " & Match2)
MsgBox("Match3 found : " & Match3)
Else
MsgBox("No match found")
End If



اگر سرچ بکنید آموزش های خیلی خوبی هم پیدا میکنید ...

موفق باشید

peyman677
سه شنبه 11 تیر 1392, 09:12 صبح
کدی که گذاشتید خیلی عالی بود ممنون.

مهرداد صفا
چهارشنبه 12 تیر 1392, 10:29 صبح
با سلام.
میتوانید با استفاده از متود Split رشته را تقسیم کنید:

Dim text As String = "String1=Value1;String2=Value2;String3=Value3;"
Dim settings As New Dictionary(Of String, String)
For Each setting In text.Split(";")
settings(setting.Split("=").First) = setting.Split("=").Last
Next
MsgBox(settings("String2"))