PDA

View Full Version : مبتدی: کمک در خصوص کار با فایل text



biotechsoft
پنج شنبه 24 آذر 1390, 07:09 صبح
1 فایل text دارم که اطلاعات اون به این شکله(البته به تعداد خیلی زیاد تر)
"1795!890621!1308!01!1"


"1316!890621!1315!01!1"
"1316!890621!1316!01!1"
"1316!890621!1322!01!1"
"1795!890621!1330!01!1"
"1316!890621!1330!01!1"
"1795!890621!1304!01!1"
"1795!890621!1307!01!1"

میخوام یه converter براش درست کنم که این ردیف ها رو در قالب زیر با فرمت text بتونه ذخیره کنه





00001117 13900922 12:18 002 30 0
00001434 13900922 13:26 001 30 0
00001225 13900922 14:25 001 30 0
00001583 13900922 14:25 001 30 0
00001434 13900922 14:25 001 30 0
00001524 13900922 14:25 001 30 0
00001549 13900922 14:25 001 30 0
00001654 13900922 14:25 001 30 0
00001793 13900922 14:26 001 30 0
00003079 13900922 14:26 001 30 0

Mani_rf
پنج شنبه 24 آذر 1390, 20:56 عصر
خب مشکلت دقیقا کجاست؟

_behnam_
پنج شنبه 24 آذر 1390, 22:26 عصر
بر چه اساس یا الگوریتمی باید تبدیل بشن؟

biotechsoft
جمعه 25 آذر 1390, 16:52 عصر
والا اینا رو نمیدونم فقط توی اولی 4 رقم اول کد پرسنلی هستن که باید 4 تا صفر بیاد اولشن یعنی 1316 باید بشه 00001316
قسمت دوم بعد ار ! تاریخه که مثلا 890621 باید بشه 13890621
قسمت بعدی هم ساعت هست مثلا 1315 باید بشه13:15

یعنی توی فایل تکست اول که خروجی یه دستگاه ساعت زن هست این رشته وجود داره
"1316!890621!1315!01!1"
باید کوتیشن ها حدف بشه و نتیجه به صورت زیر باشه و ادامه هم زیاد مهم نیست تغییری بکنه

00001316 13890621 13:15 002 30 0

Mohamad_Hosein
جمعه 25 آذر 1390, 22:29 عصر
خوب اين كار ساده ايي هست يه جور بازي با كاراكترهاست فقط بگو ببينم اون دو تا عدد آخر 01 و 1 چي شدن!
تبديل اون دو تا رو بگو تا كدت رو حاضر كنم.:لبخند:

Mohamad_Hosein
جمعه 25 آذر 1390, 23:05 عصر
من دو تاي آخر رو نفهميدم چرا و چه جوري تغيير داده شد ولي با توجه به مقداري كه توضيح داده بودي براي يك خط رشته اينجوري تونستم كدبنويسم
خوراك كار شما تابع Mid , Split , Replace

Dim S As String
Dim Te() As String
Dim i As Integer

TextBox2.Clear()
TextBox2.Text = Replace(TextBox1.Text, """", "")
TextBox2.Text = Replace(TextBox2.Text, "!", " ") ' or " " = vbtab
S = Mid(TextBox2.Text, 1, 12)
Te = Split(TextBox2.Text)
TextBox2.Clear()
Te(0) = "0000" & Te(0)
Te(1) = 13 & Te(1)
Te(2) = Mid(Te(2), 1, 2) & ":" & Mid(Te(2), 3, 2)
For i = 0 To UBound(Te)
TextBox2.Text += Te(i) + " "
Next
TextBox2.Text = Mid(TextBox2.Text, 1, Len(TextBox2.Text) - 1)

biotechsoft
جمعه 25 آذر 1390, 23:47 عصر
اون دوتا آخری چیزمهمی نیست!عین خودش بیاد
راستی اینا 1000تاسطر توی 1فایل تکست هستن و بعد تبدیل باید ذخیره بشن بافرمت تکست

biotechsoft
شنبه 26 آذر 1390, 13:43 عصر
:(( :(( :((
محمد حسین جان این که نوشتی عالیه فقط یه مشکل داره ! اینکه سطر دوم و سوم و nام رو عوض نمیکنه....:گریه:

biotechsoft
یک شنبه 27 آذر 1390, 19:38 عصر
:گریه::گریه: کسی کمکی نمیکنه؟

biotechsoft
دوشنبه 28 آذر 1390, 12:57 عصر
خب با این کد مشکلم حل شد :بوس:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try


' Dim OpenFileDialog1 As New OpenFileDialog
' OpenFileDialog1.Title = "text انتخاب فایل "
'OpenFileDialog1.DefaultExt = "txt"
'OpenFileDialog1.Filter = "text files (*.txt)|*.txt"

'If (OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK) Then
' Dim path As String = OpenFileDialog1.FileName


Dim fso, inputFile, outputFile
Dim str As String

fso = CreateObject("Scripting.FileSystemObject")

'1 means for reading

inputFile = fso.OpenTextFile("C:\trdtxt.txt", 1)
' inputFile = fso.OpenTextFile(path, 1)

str = inputFile.ReadAll

'modify this string, replace required characters
Dim str_01 As String = Label1.Text
Dim str_02 As String = Label2.Text
Dim str_03 As String = Label3.Text
Dim str_04 As String = Label4.Text
Dim str_05 As String = Label5.Text
Dim str_06 As String = Label6.Text
Dim str_07 As String = Label7.Text
Dim str_08 As String = Label8.Text
Dim str_09 As String = Label9.Text

'change cod
str = Replace(str, str_01, "00001")
str = Replace(str, str_02, "00002")
str = Replace(str, str_03, "00003")
str = Replace(str, str_04, "00004")
str = Replace(str, str_05, "00005")
str = Replace(str, str_06, "00006")
str = Replace(str, str_07, "00007")
str = Replace(str, str_08, "00008")
str = Replace(str, str_09, "00009")

'change date
str = Replace(str, "!88", " 1388")
str = Replace(str, "!89", " 1389")
str = Replace(str, "!90", " 1390")
str = Replace(str, "!91", " 1391")
str = Replace(str, "!92", " 1392")
str = Replace(str, "!93", " 1393")
str = Replace(str, "!94", " 1394")
str = Replace(str, "!95", " 1395")

'change hour
str = Replace(str, "!01", " 01:")
str = Replace(str, "!02", " 02:")
str = Replace(str, "!03", " 03:")
str = Replace(str, "!04", " 04:")
str = Replace(str, "!05", " 05:")
str = Replace(str, "!06", " 06:")
str = Replace(str, "!07", " 07:")
str = Replace(str, "!08", " 08:")
str = Replace(str, "!09", " 09:")
str = Replace(str, "!10", " 10:")
str = Replace(str, "!11", " 11:")
str = Replace(str, "!12", " 12:")
str = Replace(str, "!13", " 13:")
str = Replace(str, "!14", " 14:")
str = Replace(str, "!15", " 15:")
str = Replace(str, "!16", " 16:")
str = Replace(str, "!17", " 17:")
str = Replace(str, "!18", " 18:")
str = Replace(str, "!19", " 19:")
str = Replace(str, "!20", " 20:")
str = Replace(str, "!21", " 21:")
str = Replace(str, "!22", " 22:")
str = Replace(str, "!23", " 23:")
str = Replace(str, "!24", " 24:")

Dim str11 As String = Label11.Text
Dim str12 As String = Label12.Text
Dim str13 As String = Label13.Text
Dim str14 As String = Label14.Text
Dim str15 As String = Label15.Text

str = Replace(str, str11, " 001 30 0")
str = Replace(str, str12, " 001 30 0")
str = Replace(str, str13, " 001 30 0")
str = Replace(str, str14, " 001 30 0")
str = Replace(str, str15, " 001 30 0")


'write back

outputFile = fso.CreateTextFile("C:\ios.txt", True)

outputFile.Write(str)

MsgBox("فایل مورد نظر تبدیل شد")
Me.Label10.BackColor = Color.White
Me.Label10.Text = "عملیات تبدیل موفق بود"
' End If
Catch ex As Exception
MsgBox("خطا در تبدیل اطلاعات، مجددا اقدام نمایید", , "هشدار")
Me.Label10.BackColor = Color.Red
Me.Label10.Text = "عملیات تبدیل ناموفق بود!!!"
End Try
End Sub