ورود

View Full Version : سوال: نوشتن برنامه ای با مشخصات زیر در VB6



programm1
یک شنبه 11 آبان 1393, 16:33 عصر
با عرض سلام

میخواست بدون چطور باید برنامه به شکل زیر رو در VB6 بنویسم

بعد از اولین : (دونقطه) هر چیزی که بعدش باشه رو پاک کنه و بره خط بعدی همین کار رو انجام بده و به همین صورت تا آخرین خط پیش بره


ممنون میشم راهنمایی کنید

meys34
یک شنبه 11 آبان 1393, 16:52 عصر
Dim a() As String
a = Split(Text1.Text, ":")
Print Join(a, ":" & vbCrLf)

programm1
یک شنبه 11 آبان 1393, 23:19 عصر
نه چنین برنامه ای عملی نیست

ببینید 2 تا text box داریم و 1 کامنت

در text box 1 هر چیزی که وارد میکنم مثلا مورد زیر


cerrosx:x:604:601::/home4/cerrosx:/usr/local/cpanel/bin/noshell
troncos:x:605:602::/home4/troncos:/usr/local/cpanel/bin/noshell
berghutt:x:608:605::/home4/berghutt:/usr/local/cpanel/bin/noshell
mgattone:x:620:617::/home/mgattone:/usr/local/cpanel/bin/noshell

و خروجی text box 2 به صورت زیر باشد

cerrosx
troncos
berghutt
mgattone

samiasoft
دوشنبه 12 آبان 1393, 16:55 عصر
خب اینطور بنویسید :

Text2.Text = Split(Text1.Text, ":")(0)

ahmad abdoli
دوشنبه 12 آبان 1393, 22:48 عصر
دوست عزیز اون جواب نمی ده.
از این استفاده کن:


Dim b As String

b = Text1.Text
While Len(b) > 0
Text2 = Text2 & Left(b, InStr(1, b, ":") - 1)
b = Replace(b, Mid(b, 1, InStr(1, b, "noshell") + 6), "")
Wend

meys34
چهارشنبه 14 آبان 1393, 10:53 صبح
البته این هم درسته ولی این یکی دقیقا همونیه که ایشون خواستند یعنی پیدا کردن کاراکتر : در هر خط و ...

Dim a() As String, b As String

a = Split(Text1.Text, vbCrLf)

Dim i As Integer
For i = 0 To UBound(a)
If InStr(1, a(i), ":") = 0 Then MsgBox "Cannot Find :": Exit Sub
b = b & IIf(i = 0, "", vbCrLf) & Mid$(a(i), 1, InStr(1, a(i), ":") - 1)
Next

Print b

programm1
چهارشنبه 14 آبان 1393, 16:13 عصر
من همه رو تست کردم نمیدونم چرا کار نمیکنه :|

لطف میکنید .exe کنید +سورس قرار بدید که بفهمم چیه و چطور عمل میکنه

مشخصات (دقت کنید این برنامه ها که دادید هیچ کدوم درست نیست با مشخصات زیر):

2 عدد text box
1 command

در text box 1 کد مثل کد زیر قرار میدیم

cerrosx:x:604:601::/home4/cerrosx:/usr/local/cpanel/bin/noshell
troncos:x:605:602::/home4/troncos:/usr/local/cpanel/bin/noshell
berghutt:x:608:605::/home4/berghutt:/usr/local/cpanel/bin/noshell
mgattone:x:620:617::/home/mgattone:/usr/local/cpanel/bin/noshell


بعدش رو cammand کلیک میکنیم

خروجی زیر رو دریافت میکنیم


cerrosx
troncos
berghutt
mgattone


تعداد خط های text box 1 زیاد هست آخرین سورسی که قرار دادید فقط یکی از خط هارو میتونست درست کنه میخوام مثلاً 500 خط بدم بهش بعد 500 تا کلمه قبل : رو بده

meys34
چهارشنبه 14 آبان 1393, 19:49 عصر
اگر این هم نشد، اگر ممکنه اون 500 خط رو ضمیمه کنید تا امتحان کنیم...


کدش اینه، پروژه اش رو هم ضمیمه کردم...
Dim a() As String, b As String

a = Split(Text1.Text, vbCrLf)

Dim i As Integer
For i = 0 To UBound(a)
If InStr(1, a(i), ":") = 0 Then
b = b & vbCrLf
Else
b = b & IIf(i = 0, "", vbCrLf) & Mid$(a(i), 1, InStr(1, a(i), ":") - 1)
End If
Next

Text2.Text = b

vbhamed
پنج شنبه 15 آبان 1393, 11:11 صبح
سلام
اينم يك راه كمي ساده تر فقط دقيقا به همين شكل بايد نوشته بشه
On Error Resume Next

Dim x$(), t$(), y$, i%

x = Split(Text1, vbCrLf)

For i = 0 To UBound(x)

y = y & Split(x(i), ":")(0)
y = y & vbCrLf

Next

Text2 = y