View Full Version : خواندن از فایل متنی با دستور input
king ag
سه شنبه 12 مهر 1390, 21:59 عصر
سلام به همه دوستان عزیز
وقتبه خیر
یک سوال در مورد خوندن فایل متنی داشتم
اگر به سوالات پیش آزممون بیان دقت کرده باشید یک فایل متنی برای فایل ورودی میده
من زیاد با دستور input کار نکردم
وقتی با دستور input با حلقه همه خط هاش رو میخونم، اگر نوشته شده مثلا:
سلام خداحافظ
این میخونه فقط خداحافظ
وقتی از line input استفاده کرم مشکلش این بود که اصلا vbcrlf هارو لحاظ نمیکرد
یعنی همو تو یک خط مینوشت
لطفا اهنماییم کنید هر خط رو چطور درست بخونم
خیلی ممنون ازهمگی
موفق باشید
MohammadGh2011
سه شنبه 12 مهر 1390, 22:08 عصر
سلام عليکم
دوست عزيز من منظورتون رو درست متوجه نشدم
منظورتون اينه که تابع Inputbox رو ميخوايد بدونيد چه طوريه؟
موفق باشيد
just4froum
سه شنبه 12 مهر 1390, 22:50 عصر
با سلام
از کد زیر استفاده کنید امیدوارم مشکلتون حل بشه
Private Sub Command1_Click()
Dim myText() As String
Open "C:\myText.txt" For Input As #1
myText = Split(Input(LOF(1), 1), vbCrLf)
Close #1
End Sub
موفق باشید
returnx
چهارشنبه 13 مهر 1390, 10:13 صبح
دقت کنید این بخاطر اینکه فایل تصادفی ورودی که اونا تولید میکنن با زبان C++ هست و از n\ استفاده میکنند توضیحی که خود بیان گذاشته:
همچنین توجه داشته باشید برای خواندن سطر به سطر فایلهای متنی، دستورات استاندارد VB6 دو حالت (Cr (\r و (CrLf (\r\n را به عنوان انتهای سطر (end-of-line) قبول می کنند اما در تمام فایل های ورودی مسابقه، (Lf (\n مشخص کننده انتهای سطر می باشد. به همین دلیل شما با دستور Line Input نمی توانید سطر به سطر فایلهای ورودی مسابقه را بخوانید. برای رفع این موضوع یک procedure ساده با VB6 نوشته شده است که فایل ورودی را گرفته و آن به شکل مناسب ذخیره می کند. کافیست این procedure را در ابتدای برنامه خود قرار دهید و نام فایل ورودی را به آن ارسال کنید.
procedure :
' Changes all EOL (end-of-line) to CrLf. for more information visit: http://en.wikipedia.org/wiki/Newline
Public Sub ConvertNewLineInFile(ByVal FileName As String)
Dim FileNum As Integer
FileNum = FreeFile
Dim Buffer As String
On Error GoTo ConvertNewLineInFile_Error
Open FileName For Binary Access Read Write As FileNum
Buffer = String(LOF(FileNum), 0)
Get FileNum, , Buffer
Buffer = Replace(Buffer, vbLf, vbCr)
Buffer = Replace(Buffer, vbCr & vbCr, vbCr)
Buffer = Replace(Buffer, vbCr & vbCr, vbCr)
Buffer = Replace(Buffer, vbCr, vbCrLf)
Put FileNum, 1, Buffer
ConvertNewLineInFile_Error:
Close FileNum
End Sub
شما باید قبل از اینکه فایل ورودی رو باز کنید و شروع بخوندن کنید یکبار این Function رو فراخونی کنید تا فرمت EOL فایل ها به صورت VBCRLF تبدیل بشه تا مشکلی نداشته باشید...
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.