سلام
چطوری میشه با دستور ویژوال بیسیک یه فایل text رو ویرایش کرد و چیزی درونش قرار دارد یا چیزی حذف کرد؟
یا به جای یک کلمه کلمه دیگه ای قرار داد؟
مرسی
سلام
چطوری میشه با دستور ویژوال بیسیک یه فایل text رو ویرایش کرد و چیزی درونش قرار دارد یا چیزی حذف کرد؟
یا به جای یک کلمه کلمه دیگه ای قرار داد؟
مرسی
یا اگه محتویات فایل تکست داخل یک تکست باکس کپی بشه و ویرایش بشه و بعد به عنوان فایل تکست ذخیره بشه اینم خوبه
راهی هست؟
برای باز کردن یه متن 2 تا راه داری:
1-Open "C:\Text.txt" For Input As #1
While Not EOF(1)
Input #1, a
Text1.Text = Text1.Text & a
Wend
Close #1
2- استفاده از ریچ تکست باکس، که خیلی راحت تره، مثال:
RichTextBox1.LoadFile "C:\Text.txt"
-----------------------
بعد میتونی با تابع instr کلمه مورد نظرت رو جستجو کنی و یا با تابع replace جایگزینی کنی.
برای ویرایش چی؟ مثلا بگم هرچی reza هست به جاش R2du-soft بزار؟
سلامنوشته شده توسط R2du-soft
از تابع Replace استفاده کنید
برای مثال:
Text1 = Replace(Text1, "reza", "R2du-soft", , , vbTextCompare)
برای وارد کردن یکباره فایل متنی هم میتوانید از کدی مشابه زیر استفاده کنید:Private Sub Command1_Click()
Open "c:\1.txt" For Input As #1
Text1 = Input(LOF(1), 1)
Close
End Sub
موفق باشید
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
خوب داداشی محسن اگه بخوایم فایل تکست مستغیم از طریق کدی که داخل برناممون هست ویراش بشه چی؟
میتوانیم فایل متنی را وارد و آنرا بجای انتقال به Text-Box در متغیری ذخیره و پس از تغییر مجددا تغییرات را در همان فایل ذخیره کنیماگه بخوایم فایل تکست مستغیم از طریق کدی که داخل برناممون هست ویراش بشه چی؟
کد زیر را بررسی کنید:Private Sub Command1_Click()
Dim sStr$, sFile$
sFile$ = "c:\1.txt"
Open sFile$ For Input As #1
sStr$ = Input(LOF(1), 1)
Close #1
sStr$ = Replace(sStr$, "reza", "R2du-soft", , , vbTextCompare)
Open sFile$ For Output As #1
Print #1, sStr$
Close #1
End Sub
موفق باشید
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
سلام
دستور
Private Sub Command1_Click()
Dim sStr$, sFile$
sFile$ = "c:\1.txt"
Open sFile$ For Input As #1
sStr$ = Input(LOF(1), 1)
Close #1
sStr$ = Replace(sStr$, "reza", "R2du-soft", , , vbTextCompare)
Open sFile$ For Output As #1
Print #1, sStr$
Close #1
End Sub
اگه تو فایل تکستمون خیلی پر باشه ، ارور میده و جایگزین نمیکنه !!!!
باز میخوام که مستقیم ویرایش بشه.
چطور میشه درستش کرد؟
آخرین ویرایش به وسیله R2du-soft : جمعه 13 مرداد 1391 در 17:18 عصر
کسی نیست راهمایی کنه؟
سلام علیکمنوشته شده توسط R2du-soft
متن خطا را هم در صورت امکان ضمیمه کنید
کد در فایل های متنی تا حجم ~5MB مشکلی نداشت (حجم بیشتر را تست نکرده ام، البته بسته به حجم فایل سرعت بارگذاری تغییر میکند)
موفق باشید
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
مرسی گلمکد HTML:run-time error '62': input past end of file
______________
الان چک کردم دیدم مشکل از خط
sStr$ = Input(LOF(1), 1)
هست نمیدونم چشه!!!
موقعی که کد رو تو دکمه در فرم خالی مینویسیم باید چیزی هم داخل فرم بزاریم؟
یا فقط کد رو داخل دکمه بزاریم اوکی هست؟
آخرین ویرایش به وسیله R2du-soft : شنبه 14 مرداد 1391 در 00:53 صبح
واسه من که عمل نمیکنه
با دستور
هم نمیشه که فایل رو بخونم !!!!!!!!!کد HTML:RichTextBox1.LoadFile "C:\Text.txt"
کد مشابه دیگه ای وجود نداره؟
آخرین ویرایش به وسیله R2du-soft : شنبه 14 مرداد 1391 در 16:31 عصر
دوستان کسی نیست یه کمکی به ما بکنه؟
این خطا زمانی رخ میده که به آخر فایل رسیده باشی، یعنی دیگه چیزی واسه خوندن وجود نداره. ولی من توی کد آقای واژدی به همچین خطایی بر نخوردم.run-time error '62':
input past end of file
بله اوکی هست و چیزی نمی خواد.موقعی که کد رو تو دکمه در فرم خالی مینویسیم باید چیزی هم داخل فرم بزاریم؟
یا فقط کد رو داخل دکمه بزاریم اوکی هست؟
سلام علیکم گاهی اوقات نشانه EOF در یک فایل متنی وجود دارد (در هرجای فایل) که در اینصورت در صورت استفاده از Input به خطای فوق برخورد می کنیم، برای حل این مشکل دو راه در پیش رو داریم: 1- محتویات فایل متنی فعلی را copy و آنرا در یک notepad جدید paste و ذخیره کنیم 2- محتویات فعلی را با دستور Line-Input وارد کنیم:نوشته شده توسط R2du-softPublic Function TextFileContents(sFilePath$) As Stringاین تابع را در ماژول کد یا فرم کپی کنید
On Error Resume Next
Dim iFF%, sLC$
iFF% = FreeFile
Open sFilePath$ For Binary As iFF%
Do Until EOF(iFF%)
Input #iFF%, sLC$
TextFileContents = TextFileContents & sLC$ & vbNewLine
Loop
Close iFF%
End Function
برای مثال:MsgBox TextFileContents("c:\1.txt")استفاده از Input در دسترسی Binary روشی نامتعارف است اما در غیر این روش نمیتوانیم کل فایل را بارگذاری کنیم، البته میتوانیم فایل را با Input باز و با استفاده از Line-Input خطوط فایل را وارد کنیم اما استفاده از Line-Input تنها موجب جلوگیری این خطای Error(62) میشود وگرنه با رسیدن حلقه به این نشانگر EOF مثبت و حلقه خاتمه میابد و چه بسا که این نشانگر در جایی بجز انتهای فایل متنی باشد و تنها نیمی از فایل بارگذاری شود
موفق باشید
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
با اجرای دستورات بالا برنامه قفل میکنه حتی اگه تو فایل 1.txt یک کلمه باشه!!!!
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
با سلام و تشکر از تمامی دوستان که منو تو این پست همراهی کردن و کمک کردن بهم.
تمامی کدهایی که دوستان قرار دادن برای چیزی که من میخواستم کار نکرد.
بالاخره پس از گشت و گذارهای پی در پی تونستم که چیزی که میخوام رو پیدا کنم و گفتم که اونو برای شما عزیزان قرار بدم شاید یروز یکی مثل من بهش خیلی نیاز داشت.
با کد زیر میتونید 1 فایل تکست رو بدون باز کردن ویرایش و چیزی که میخواید رو به جای چیز دیگه بزارید
در برنامه اول تابع زیر (ReadFile) را قرار میدهیم:
Private Function ReadFile(ByVal Path As String) As String
Dim Buffer() As Byte
Dim IDCode As Integer
On Error Resume Next
Open Path For Binary As #1
If LOF(1) > 0 Then
Get #1, 1, IDCode
If IDCode = &HFEFF Then
If LOF(1) > 2 Then
ReDim Buffer(0 To LOF(1) - 3) As Byte
Get #1, 3, Buffer
ReadFile = Buffer
Else
ReadFile = ""
End If
Else
ReDim Buffer(0 To LOF(1) - 1) As Byte
Get #1, 1, Buffer
ReadFile = StrConv(Buffer, vbUnicode)
End If
Else
ReadFile = ""
End If
Close #1
End Function
سپس تابع SaveFile را قرار میدهیم:
Private Sub SaveFile(ByVal Path As String, ByVal Text As String, Optional ByVal Unicode As Boolean)
Dim Buffer() As Byte
Dim IDCode As Integer
On Error Resume Next
Open Path For Output As #1
Close #1
Open Path For Binary As #1
If Len(Text) > 0 Then
If Unicode Then
IDCode = &HFEFF
Buffer = Text
Put #1, 1, IDCode
Put #1, 3, Buffer
Else
Buffer = StrConv(Text, vbFromUnicode)
Put #1, 1, Buffer
End If
End If
Close #1
End Sub
و سپس فرمان ویرایش فایلمان را در یک دکمه
Private Sub Command1_Click()
Dim s As String
s = ReadFile("C:\1.txt")
s = Replace(s, "reza", "r2du-soft")
SaveFile "C:\1.txt", s, True
End Sub
کار تمام است زمانی که برنامه اجرا شود و بر وری دکمه کلیک کنیم فایل txt.1 که در درایو c قرار دارد ویرایش میشود و هرچه نام reza در فایل باشد به r2du-soft تغییر میکند و باز با همان نام 1.txt ذخیره میشود.
با تشکر از تمامی اساتید که منو راهنمایی کردن
از این استفاده کن ببین مشکلت حل میشه؟
Public Function OpenTextFile(ByVal FilePath As String) As String
Dim FFile As Byte
Dim CurByte As Byte
Dim i As Variant
FFile = FreeFile()
Open FilePath For Binary As #FFile
For i = 1 To FileLen(FilePath)
Get #FFile, i, CurByte
OpenTextFile = OpenTextFile & Chr(CurByte)
Next i
Close #FFile
End Function
شما اینو بالای فرمت بذاز (تو قسمت جنرال)
بعد اینجوری ازش استفاده کن :
Text1.Text = OpenTextFile("C:\1.txt")
با این کد
قسمت کمی ار متن نمایش داده میشه ولی نه کاملشکد HTML:Dim FileGet As String * 1 Dim Counter As Long Open "C:\1.txt" For Binary As 1 For Counter = 1 To LOF(1) Get 1, , FileGet Text1.Text = Text1.Text + FileGet Next Close
فکر میکنم این کدهایی که شما گذاشتین برای تکست های یونیکد هستش
اگه نوع فایلتون ANSI باشه تمام کدهایی که تو پستهای قبل بود جواب میدادن احتمالا!
(چون به نظر میرسه متن تکستتون اینگیلیسی هستش استفاده از یونیکد زیاد کارایی نداره و فقط چن بایت اول فایل اشغال میشه (همون IDCode تو کدهایی که گذاشتین) + اینکه اصلا بعید میدونم ویبی بتونه متون زبان های دیگه مثل فارسی رو به این راحتی به یونیکد ترجمه کنه)
به هر حال موفق باشید
سلام
دوستان من میخاستم به کمک ویژوال بیسیک 1 فایل txt را دریافت کنم بعد از دریافت 1 شماره اشتراک 10 رقمی را سرچ کنم و اگه تو فایل txt وجود داشت اون سطر پاک بشه میشه کمکم کنید؟