# Native Code > برنامه نویسی در 6 VB > کامپوننت ها و ابزارهای کاربردی در VB6 > سوال: خواندن فایل متن txt

## www.pc3enter.tk

سلام دوستان
من یک سوال داشتم

من با استفاده از این کد می توانم  یک فایل متنی را لود کنم

aa=freefile
open "c:\ali.txt" for input as #1
do until eof (1) 'zzzz
line input #1,aa
text1.text=aa
do events
loop
close#aa

(البته این کد یکمی مشکل داره که درست کد آن را حفظ نیستم)

خوب سوال من اینکه چطوری می توانم مثلا خط دوم یا خط سوم را بخونم 
چون فقط با این کد فقط می توان خط اول را خواند

با تشکر اگر من را در این مشکل کمک کنید

----------


## SlowCode

سلام
Open "C:\ali.txt" For Input As #1
Do While Not (EOF(1))
Line Input #1, a
i = i + 1
If i = 2 Then Exit Do
Loop
text1.Text = a
close


و یا:
Open "C:\ali.txt"" For Input As #1
AllText = Input(LOF(1), 1)
ln = Split(AllText, vbCrLf)
text1.Text = ln(1)
Close
البته دومی بهتره. چون بهینه تره.

----------


## www.pc3enter.tk

ممنون 
حالا یک سوال دیگه دارم

اگر داخل تکس باکس چند سطر متن داشته باشیم چه جوری می توانم مثلا خط سوم را تغییر بدهم
=======================================
و سوال دیگه چه جوری می توانم فقط خط چهارم را بخوانم

----------


## SlowCode

میتونی از کد زیر استفاده کنی(البته شاید راه ساده تری هم باشه):

Open "C:\log.txt" For Input As #1
AllText = Input(LOF(1), 1)
ln = Split(AllText, vbCrLf)
a = ln(3)
Close
ln(3) = "Text changed!"
Open "C:\log.txt" For Output As #1
For i = 0 To UBound(ln)
Print #1, ln(i)
Next
Close

یعنی ما سطر ها رو میریزیم تو یه آرایه بعد سطر دلخواه رو تغییر میدیم و بعد مینویسیم توی فایل.



> و سوال دیگه چه جوری می توانم فقط خط چهارم را بخوانم


text1.Text = ln(3)

----------


## mehran901

البته از متغییر های FSO و رفرنس Microsoft Scripting runtime هم می تونی برای این منظور استفاده کنی اگه برات مهمه خط به خط بخونی روشی که بیای فایل رو باز کنی و با EOF آخرشو چک کنی و خط به خط رو اینجوری بخونی مشکل ایجاد میکنه یادمه رو ی پروژه که کار میکردم بعضی از سطر ها که یادم نیست با کاراکتر های خاصی شروع میشدن باعث به وجود اومدن یک مشکل مسخره میشدن و اون این بود که ردیف خطوط به خوبی مشخص نمیشد ...

و برای به دست آوردن اطلاعات خاصی تو اون پروژه از FOS استفاده کردم که به مراتب بهتر از open Address for input as # freefile هست !

بعد از اضافه کردن رفرنسی که در بالا بهش اشاره کردم به داخل برنامت از این طریق می تونی به اطلاعات فایل تکست دسترسی داشته باشی و فایل متنی رو مدیریت کنی 

Dim fso as new filesystemobject
dim f as file 
dim text as textstream
Set file = fso.getfile (Path)
set text = file.openastextstream(forappending )  




البته FOrappending وقتی استفاده میشه که بخوای بدون حذف اطلاعات سابقت ، اطلاعات جدیدی به فایل اضافه کنی و ForWriting , ForReading هم که از اسمش مشخصه.... 
حالا به راحتی به پروسیجر هایی که در اختیارت قرار میده میتونی فایل متنیت رو به بهترین شکل مدیریت کنی

----------


## majid12376

سلام من یه کد میخوام که بتونم یه فایل متنی رو لود کنه بعد برای اخر هر خط از فایل متنی علامت کاما بذاره
من خودم کدشو دارم ولی وقتی تعداد خط های فایل متنی زیاد باشه برنامه هنگ میکنه
این برنامه برای ارسال ایمیل گروهی میخوام
فایل متنی هر خطش ادرس یه ایمیل باشه

----------


## rahnema1

> سلام من یه کد میخوام که بتونم یه فایل متنی رو لود کنه بعد برای اخر هر خط از فایل متنی علامت کاما بذاره
> من خودم کدشو دارم ولی وقتی تعداد خط های فایل متنی زیاد باشه برنامه هنگ میکنه
> این برنامه برای ارسال ایمیل گروهی میخوام
> فایل متنی هر خطش ادرس یه ایمیل باشه


کدی که نوشتی بذار اینجا ببینیم چه ایرادی داره؟

----------

