PDA

View Full Version : سوال: انتقال چند ستون در یک combobox



Rain_Saeid
پنج شنبه 08 مهر 1395, 17:54 عصر
سلام و درود
دوستان عزیز ی فایل متنی txt هست که بصورت چند سطر و ستون هست
بنده میخوام ستون آخر این فایل متنی رو به combobox انتقال بدم
یعنی ستون آخر این فایل متنی همگی داخل combobox ریخته بشه

ممنون میشم

336699
جمعه 09 مهر 1395, 16:06 عصر
سلام
این فایل ، خروجی چه برنامه ای هستش؟
چرا ستونها بعضی جاها با 7 اسپیس و بعضی جاها 5 اسپیس و 3 اسپیس از هم جدا شدن؟

اگه با 1 اسپیس یا با تب جدا شده بودن ، کار راحتر بود

mr_ayma
جمعه 09 مهر 1395, 16:23 عصر
سلام ، مقادیر داخل ستون اخر همیشه با mmcb شروع میشه ؟

Rain_Saeid
جمعه 09 مهر 1395, 16:54 عصر
سلام ، مقادیر داخل ستون اخر همیشه با mmcb شروع میشه ؟

درود
بله همیشه با mmcblk شروع میشه
اون اولی هم zram0 اگر نشد, مشکلی نیست
همه اونهایی که mmcblk هستن رو میخوام داخل کمبوباکس بریزم ، همین
ممنون میشه راهنمایی بفرمایید

البته اگه هر گزینه که هست، سایز هم بغلش هست، اون سایز ها هم باهاش مقدار بخوره عالی میشه

mr_ayma
جمعه 09 مهر 1395, 20:05 عصر
سلام مجدد

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



Public Function GetStringBetween(ByVal InputText As String, _
ByVal starttext As String, _
ByVal endtext As String)

Dim startPos As Integer
Dim endPos As Integer
Dim lenStart As Integer
startPos = InputText.IndexOf(startText, StringComparison.CurrentCultureIgnoreCase)
If startPos >= 0 Then
lenStart = startPos + starttext.Length
endPos = InputText.IndexOf(endtext, lenstart, StringComparison.CurrentCultureIgnoreCase)
If endPos >= 0 Then
Return InputText.Substring(lenStart, endPos - lenStart)
End If
End If
Return "ERROR"
End Function

End Class



حالا وقشته که فایل متنی رو خط به خط بخونیم و به اون تابع بفرستیم . شما گفتین مقادیر ستون اخریه mmcblk شروع میشه ، برای اینکه پارامتر دومی هم برای تابع باشه من عمدا" به هر خط کاراکتر | هم اضافه کردم ، چون وقتی می گفتم ،بین mmcblk و اسپش بگرد تابع Error می داد . پس این کد هم برای رویداد کلیک Button1 ، موقعی که روی باتن یک کلیک میشه مقادیر ستون اخری به کامبوباکس اضافه میشه



Dim line As String
Dim end_column As String

line = File.ReadAllText("C:\textfile\file.txt")
For Each strLine As String In line.Split(vbNewLine)
strLine = strLine + "|"


end_column = GetStringBetween(strLine, "mmcblk", "|")
If (end_column <> "ERROR") Then
ComboBox1.Items.Add("mmcblk" + end_column)
End If




Next



اگر با کدهای بالا مشکلی داشتین بگین فایلو اتچ کنم . در مورد اون سایزها هم من حدس می زنم اون نرم افزاری که ازش خروجی تکست رو گرفتین این قابلیتو داره که به صورت منظم ستون ها رو تفکیک کرد احتمالا اگر داخل فایل اکسس چند تا ستون می ساختین و اونجا کپی می کردین به صورت جداگانه داخل اون ستونها کپی می شد . یا اینکه اگر این سایزها نکته خاصی دارن که از قاعده ای پیروی می کنن بگین تا کدشو براتون بنویسم

Rain_Saeid
شنبه 10 مهر 1395, 19:10 عصر
سلام مجدد

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



Public Function GetStringBetween(ByVal InputText As String, _
ByVal starttext As String, _
ByVal endtext As String)

Dim startPos As Integer
Dim endPos As Integer
Dim lenStart As Integer
startPos = InputText.IndexOf(startText, StringComparison.CurrentCultureIgnoreCase)
If startPos >= 0 Then
lenStart = startPos + starttext.Length
endPos = InputText.IndexOf(endtext, lenstart, StringComparison.CurrentCultureIgnoreCase)
If endPos >= 0 Then
Return InputText.Substring(lenStart, endPos - lenStart)
End If
End If
Return "ERROR"
End Function

End Class



حالا وقشته که فایل متنی رو خط به خط بخونیم و به اون تابع بفرستیم . شما گفتین مقادیر ستون اخریه mmcblk شروع میشه ، برای اینکه پارامتر دومی هم برای تابع باشه من عمدا" به هر خط کاراکتر | هم اضافه کردم ، چون وقتی می گفتم ،بین mmcblk و اسپش بگرد تابع Error می داد . پس این کد هم برای رویداد کلیک Button1 ، موقعی که روی باتن یک کلیک میشه مقادیر ستون اخری به کامبوباکس اضافه میشه



Dim line As String
Dim end_column As String

line = File.ReadAllText("C:\textfile\file.txt")
For Each strLine As String In line.Split(vbNewLine)
strLine = strLine + "|"


end_column = GetStringBetween(strLine, "mmcblk", "|")
If (end_column <> "ERROR") Then
ComboBox1.Items.Add("mmcblk" + end_column)
End If




Next



اگر با کدهای بالا مشکلی داشتین بگین فایلو اتچ کنم . در مورد اون سایزها هم من حدس می زنم اون نرم افزاری که ازش خروجی تکست رو گرفتین این قابلیتو داره که به صورت منظم ستون ها رو تفکیک کرد احتمالا اگر داخل فایل اکسس چند تا ستون می ساختین و اونجا کپی می کردین به صورت جداگانه داخل اون ستونها کپی می شد . یا اینکه اگر این سایزها نکته خاصی دارن که از قاعده ای پیروی می کنن بگین تا کدشو براتون بنویسم

تشکر ، بخوبی جواب داد