ممنون دوست عزیز اینم سورس ،دوست عزیز من نمی تونم از روی توضیحات کسی برنامه بنویسم چون تسلط ندارم مثل این میونه که یه آدرس بدین دست یه بیسواد اگه بتونید زحمت سورس پست 23 رو بکشین ممنون میشمنقل قول:
Printable View
ممنون دوست عزیز اینم سورس ،دوست عزیز من نمی تونم از روی توضیحات کسی برنامه بنویسم چون تسلط ندارم مثل این میونه که یه آدرس بدین دست یه بیسواد اگه بتونید زحمت سورس پست 23 رو بکشین ممنون میشمنقل قول:
خب دوست عزیز اینم کدی که من طبق توضیحات شما نوشتم حالا میشه لطفا در مورد مقایسه و شمارنده کمکم کنید ممنون
Dim i%
Dim x() As String
x = Split(Text1.Text, vbCrLf)
Dim y() As String, z As String, a As Integer
For i = 0 To UBound(x)
y() = Split(x(i), vbTab)
y(1) = Replace(y(1), "-", "")
z = y(1) + 11
z = Left(z, 1) & "-" & Right(z, 1)
Next
سلام دوست عزیز مشکلی که گفته بودم حل شد اگه در جایی به مشکل برخوردم باز هم مزاحمتون میشم ممنون
سلام دوست عزیز من داخل کد شما تغییراتی دادم که بتونم برای مقایسه یک عبارت بصورت مثلا 1234 با ستون دوم 6-6 و 100 عبارت بصورت 123400 الی 123499 با ستون دوم 4-4 استفاده کنم حالا مشکل من اینه که فایل 1 با 2 مقایسه میشه مشکلی هم نداره و اختلافها رو نشون میده اما مقایسه فایل 2 با 1 جواب نمیده یعنی مقایسه رو انجام میده ولی اختلافها رو نشون نمیده میشه لطف کنید یه نگاهی کنید ببینید مشکل از کجاست ممنون
سلام!نقل قول:
کد اصلاح و پیوست شد.
سلام ممنون بابت کدتون من می خوام 1 عبارت بصورت مثلا 5-5 12345 رو به 10 عبارت 123450 الی 123459 با ستون دوم 4-4 تبدیل کنم کد زیر رو درست کردم ولی نمی دونم اشکالش کجاست درست عمل نمیکنه ممنون میشم راهنمایی کنید
Private Sub Command1_Click()
On Error Resume Next
Dim tmp As String
Dim filepath As String
cmdg.ShowOpen
filepath = cmdg.FileName
Open filepath For Input As #1
tmp = Input(LOF(1), #1)
Close #1
Text1.Text = tmp
Dim i%
Dim x() As String
x = Split(Text1.Text, vbCrLf)
Dim y() As String, z As String, a As Integer
Open filepath For Output As #1
For i = 0 To UBound(x)
y() = Split(x(i), vbTab)
For j = 0 To 9
Text1.Text = Replace(Text1.Text, Left(y(0), 5) + vbTab + "5-5", Left(y(0), 5) + CStr(j) + vbTab + "4-4")
Next j
Next
Print #1, Text1.Text
Close #1
End Sub
سلام!نقل قول:
خواهش می کنم...
اشکال اینجاست که رشته های مورد نظر شما ده بار با رشته ی حاوی بخش 5-5 جایگزین میشه. در نتیجه در اجرای اول حلقه رشته ی حاوی 4-4 با رشته ی حاوی 5-5 جایگزین میشه و در اجرا های بعدی دیگه رشته ی 5-5 وجود نخواهد داشت که رشته های جدید بخوان اضافه بشن!
میشه کد رو به شکل زیر تغییر داد:
موفق باشیدکد:Private Sub Command1_Click()
On Error Resume Next
Dim tmp As String
Dim filepath As String
cmdg.ShowOpen
filepath = cmdg.FileName
Open filepath For Input As #1
tmp = Input(LOF(1), #1)
Close #1
Text1.Text = tmp
Dim i%
Dim x() As String
x = Split(Text1.Text, vbCrLf)
Dim y() As String, z As String, j As Integer
Open filepath For Output As #1
For i = 0 To UBound(x)
y() = Split(x(i), vbTab)
z = Left(y(0), 5) + "0" + vbTab + "4-4"
For j = 1 To 9
z = z + vbCrLf + Left(y(0), 5) + CStr(j) + vbTab + "4-4"
Next j
Text1.Text = Replace(Text1.Text, x(i), z)
Next i
Print #1, Text1.Text
Close #1
End Sub
آرمین
دوست عزیز ممنون بابت کد ولی مشکل اینجاست که من فقط می خوام اوناییکه ستون دومشون 5-5 رو تبدیل کنه ولی این کد اگه عبارتی ستون دومش 4-4 باشه هم به 10 عبارت تبدیل می کنه ،اگه به اینصورت نمیشه برعکسش هم باشه کار من رو راه میندازه یعنی 10 عدد با ستون دوم 4-4 رو به یک عدد با ستون دوم 5-5 تبدیل کنه به طور مثال 10 عدد 123450 الی 123459 با ستون دوم 4-4 به 1 عبارت بصورت 12345 با ستون دوم 5-5 تبدیل بشه من سورس با یه نمونه فایل تکست قرار میدم ممنون
چاره ی کار این مشکل اضافه کردن یه شرط ساده است:نقل قول:کد:Private Sub Command1_Click()
On Error Resume Next
Dim tmp As String
Dim filepath As String
cmdg.ShowOpen
filepath = cmdg.FileName
Open filepath For Input As #1
tmp = Input(LOF(1), #1)
Close #1
Text1.Text = tmp
Dim i%
Dim x() As String
x = Split(Text1.Text, vbCrLf)
Dim y() As String, z As String, j As Integer
Open filepath For Output As #1
For i = 0 To UBound(x)
y() = Split(x(i), vbTab)
If y(1) = "5-5" Then
z = Left(y(0), 5) + "0" + vbTab + "4-4"
For j = 1 To 9
z = z + vbCrLf + Left(y(0), 5) + CStr(j) + vbTab + "4-4"
Next j
Text1.Text = Replace(Text1.Text, x(i), z)
End If
Next i
Print #1, Text1.Text
Close #1
End Sub
سلام من میخوام عکس عملی رو که در پست قبل گفتم انجام بدم یعنی اون 10 عبارت رو به یک عبارت تبدیل کنم کد شما رو تغییر دادم اما فقط برای یک عبارت انجام میشه ،, و باید برای ده عبارت بعدی همین کار رو دوباره تکرار کرد ممکنه لطف کنید کد را تصحیح کنید ممنون
cmdg.ShowOpen
filepath = cmdg.FileName
Open filepath For Input As #1
tmp = Input(LOF(1), #1)
Close #1
Text1.Text = tmp
Dim i%
Dim x() As String
x = Split(Text1.Text, vbCrLf)
Dim y() As String, z As String, j As Integer
Open filepath For Output As #1
For i = 0 To UBound(x)
y() = Split(x(i), vbTab)
If y(1) = "4-4" Then
a = Left(y(0), 5) + vbTab + "5-5"
z = Left(y(0), 5) + CStr(j) + vbTab + "4-4"
For j = 1 To 9
z = z + vbCrLf + Left(y(0), 5) + CStr(j) + vbTab + "4-4"
Next j
Text1.Text = Replace(Text1.Text, z, a)
End If
Next i
Print #1, Text1.Text
Close #1