سوال درباره کار با فایل txt در ویژوال بیسیک

A_123

Member
سلام و خسته نباشید

ببینید من یه برنامه نوشتم که تو اوون محتویات یه textbox که خاصیت multiline آن true هستش توسط دستور های open x.txt for output as #1 و سپس print ریخته میشه توی فایل متنی x . این تا اینجا .

بعد گویا برنامه میاد همه ی اینا رو توی یه خط می زاردش تو فایل x . یعنی اگه فایل x رو باز کنم خط اولش مثلا 200 تا کارکتر داره! من میخواستم بدونم که آیسا میشه به برنامه دستوری داد که هر 100 کارکتر از textbox رو بکنه توی یک خط از فایل متنی x .؟ یعنی اگه توی textbox ما 1000 تا کارکتر بود و ریخته شد توی فایل x.txt , وقتی فایل متنی رو باز کنی ببینی توی ده خط ریخته شده!

امیدوارم خوب پرسیده باشم!:rose:
 

the_king

مدیرکل انجمن
سلام و خسته نباشید

ببینید من یه برنامه نوشتم که تو اوون محتویات یه textbox که خاصیت multiline آن true هستش توسط دستور های open x.txt for output as #1 و سپس print ریخته میشه توی فایل متنی x . این تا اینجا .

بعد گویا برنامه میاد همه ی اینا رو توی یه خط می زاردش تو فایل x . یعنی اگه فایل x رو باز کنم خط اولش مثلا 200 تا کارکتر داره! من میخواستم بدونم که آیسا میشه به برنامه دستوری داد که هر 100 کارکتر از textbox رو بکنه توی یک خط از فایل متنی x .؟ یعنی اگه توی textbox ما 1000 تا کارکتر بود و ریخته شد توی فایل x.txt , وقتی فایل متنی رو باز کنی ببینی توی ده خط ریخته شده!

امیدوارم خوب پرسیده باشم!:rose:

مدام باید این مساله رو تذکر بدم، همیشه در عنوان سوال زبان برنامه نویسی رو مشخص کنید.

بصورت پیشفرض صرفا زمانی متن در سطر جدید ذخیره میشه که در متن ورودی از Enter استفاده کرده باشید که
موجب درج شدن دو کاراکتر CR و LF میشه یعنی vbCrLf
اما چون خودتون چنین کاراکتر هایی رو درج نکرده اید می بایستی رشته رو در فواصلی حدود 100 کاراکتر بشکنید،
البته چه بهتر که این شکستن در میان کلمات انجام یشه، نه دقیقا 100 کاراکتر تا موجب شکسته شدن یک کلمه
به دو قسمت نشویم.

مثلا :
کد:
    Dim t1 As String, t2 As String
    Dim pos As Long, n As Long
    n = 100
    t1 = Text1.Text
    pos = 1
    Do While pos <= Len(t1)
        Select Case Mid(t1, pos, 1)
        Case ".", ":", "?", " "
            If pos >= n Then
                t2 = t2 & Left(t1, pos) & vbCrLf
                t1 = Mid(t1, pos + 1)
                pos = 0
            End If
        Case vbCr
            t2 = t2 & Left(t1, pos - 1) & vbCrLf
            t1 = Mid(t1, pos + 2)
            pos = 0
        End Select
        pos = pos + 1
    Loop
    t2 = t2 & t1
    Open "x.txt" For Output As #1
    Print #1, t2
    Close #1
 

جدیدترین ارسال ها

بالا