View Full Version : خواندن هر سطر فایل تکست
bagion
چهارشنبه 14 مهر 1389, 17:20 عصر
با سلام خدمت متخصصین کار با فایل و مدیران محترم
من یه تکست دارم که خط به خط سطرهاش اضافه میشه
برای خوندن همچین فایلی به نحویکه برنامه در انتهای خط منتظر سطر جدید بمونه چیکار باید کرد؟
(اگر داخش مدام نوشته نمیشد میتونستم EOF بزنم ولی حالا چی؟ برای نمونه تکست زیر رو در نظر بگیرید که عدد افزایش پیدا میکنه)
لطفا راهنمایی کنید
Open strFileName For Input As #intFileNbr
Do While Not EOF(intFileNbr)
my code
Loop
Close #intFileNbr
saminco
چهارشنبه 14 مهر 1389, 17:48 عصر
هر سطر رو می خونیم با کد اسکی و هر وقت که به کد اسکی 13 رسیدیم معلوم میشه که کاربر اونجا enter یعنی آخر اون سطره
البته eof هم روش خوبیه
bagion
چهارشنبه 14 مهر 1389, 20:22 عصر
دوست عزیز اینو که گفتی میدونستم ولی اشکال اینجاست که فایل مدام بهش اضافه میشه و تا زمانیکه سطر جدید به انتهای تکست اضافه بشه eof گول میخوره وخوندن رو متوقف میکنه.
vbhamed
پنج شنبه 15 مهر 1389, 10:35 صبح
سلام
اينم يك نمونه كد كه هر سطري اضافه بشه به يك ليست اضافه مي كنه، از سايز فايل و شمارش سطرها براي اين كار كمك گرفته شده
Private Sub Form_Load()
On Error Resume Next
Dim FileSize&, strFileName$, intFileN, x$, OldLine&, CurLine&
strFileName$ = "c:\test.txt"
intFileN = FreeFile
Show
Do
FileSize = FileLen(strFileName)
Open strFileName For Input As #intFileN
CurLine = 0
Do Until EOF(intFileN)
Line Input #intFileN, x
CurLine = CurLine + 1
If CurLine > OldLine Then
List1.AddItem x
OldLine = OldLine + 1
End If
Loop
Close #intFileN
Do
DoEvents
Loop While FileLen(strFileName) = FileSize
Loop
End Sub
sajjad_india
پنج شنبه 15 مهر 1389, 11:00 صبح
اینم از من
این کد میاد محتویات یک تکست باکس رو در لیست باکس اضافه و در فایل مینویسه و الی آخر ....
Dim a, str1 As String
str1 = Text1.Text
Open "kala.txt" For Input As #1
k = 0
Do While Not EOF(1)
Input #1, a
k = k + 1
If k = 1 Then
str1 = str1 & vbNewLine & a
Else
str1 = str1 & vbNewLine & a
End If
Loop
Close #1
Open "kala.txt" For Output As #1
Print #1, str1
Close #1
MsgBox "˜ÇáÇí ãæÑÏ äÙÑ Èå áíÓÊ ÇÖÇÝå ÔÏ", , "Mobile Service"
Text1.Text = ""
loodfile
Text1.SetFocus
اینم پاک میکنه خطها رو ....
Private Sub Command2_Click()
Dim txt As String
Dim i As Integer
If List1.ListCount = 1 Then
MsgBox "˜ÇáÇíí ÈÑÇí ǘ äãæÏä æÌæÏ äÏÇÑÏ", , "Mobile Service"
Else
List1.RemoveItem (itt)
End If
For i = 0 To List1.ListCount - 1
txt = txt & List1.List(i) & vbCrLf
Next i
WriteFile "kala.txt", txt
End Sub
اینم کد WriteFile
' Write the string into the file.
Private Sub WriteFile(ByVal file_name As String, ByVal txt _
As String)
Dim fnum As Integer
fnum = FreeFile
Open file_name For Output As fnum
Print #fnum, txt;
Close fnum
End Sub
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.