PDA

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