PDA

View Full Version : replace کردن یک رشته در فایل؟



one hacker alone
سه شنبه 25 مهر 1391, 16:48 عصر
با یاد خدا
سلام دوستان
فایل متنی داریم که داخل اون به شکل زیر هست
ali 123456
حالا چجوری میشه این فایل رو باز کرد و اون 3 رو به 9 تغییر داد؟
در واقع مشکل من با پاک کردن عدد 3 هست

MohammadGh2011
سه شنبه 25 مهر 1391, 17:06 عصر
با یاد خدا
سلام دوستان
فایل متنی داریم که داخل اون به شکل زیر هست
ali 123456
حالا چجوری میشه این فایل رو باز کرد و اون 3 رو به 9 تغییر داد؟
در واقع مشکل من با پاک کردن عدد 3 هست

سلام عليکم
ميتونيد از اين دستور استفاده کنيد:
filepath = "C:\txtfile.txt"
FileNumber = FreeFile()
Open filepath For Output As FileNumber
Write #FileNumber, "ali 129456"
Close FileNumber
و يا از اين دستور استفاده کنيد:
Dim filepath As String
filepath = "C:\txtfile.txt"
FileNumber = FreeFile()
Open filepath For Output As FileNumber
Write #FileNumber, Replace("ali 123456", "3", "9")
Close FileNumber

اگه توضيح خواستين بگين.

موفق باشيد

one hacker alone
سه شنبه 25 مهر 1391, 19:37 عصر
ممنون مشکلی که هست اینه که محتوای فایل ثابت نیست فقط ما میدونیم که مثلا هفتمین و هشتمین کاراکتر باید پاک بشن و بجاش دو رقم دیگه قرار بگیره و سایر داده های فایل متغییر هست

MohammadGh2011
سه شنبه 25 مهر 1391, 20:52 عصر
ممنون مشکلی که هست اینه که محتوای فایل ثابت نیست فقط ما میدونیم که مثلا هفتمین و هشتمین کاراکتر باید پاک بشن و بجاش دو رقم دیگه قرار بگیره و سایر داده های فایل متغییر هست
اگه شما ميدونيد که چندمين کاراکتر بايد جايگزين بشه ميشه بايک تغيير کوچولو در کد اون رو اعمال کرد.

one hacker alone
سه شنبه 25 مهر 1391, 21:07 عصر
اونجایی که من میخوام تغییر بدم مشخص هست اما ادامه رشته متغییر هست و معلوم نیست چیه اما کد شما جوری نوشته شده که محتوای فایل ثابت در نظر گرفته شده

MohammadGh2011
سه شنبه 25 مهر 1391, 21:08 عصر
اين هم براي متن متغير:
Dim inti As Integer
Dim filepath As String
Dim fileline As String
Dim le As String
Dim mi As String

filepath = "C:\txtfile.txt"
FileNumber = FreeFile

Open filepath For Input As FileNumber
While EOF(FileNumber) = False
Input #FileNumber, fileline
le = fileline
Wend
Close

Open filepath For Output As FileNumber
Write #FileNumber, Replace(le, "1", "9")
Close FileNumber


موفق باشيد

one hacker alone
سه شنبه 25 مهر 1391, 21:36 عصر
ممنون ایرادی که داره در نهایت چیزی که داخل فایل ذخیره میشه اینه
""

همین

MohammadGh2011
سه شنبه 25 مهر 1391, 21:43 عصر
ممنون ایرادی که داره در نهایت چیزی که داخل فایل ذخیره میشه اینه
""

همین
خواهش ميکنم
اين هم قابل حله،کافيه خطا زير رو
Write #FileNumber, Replace(le, "1", "9")
به اين:
Print #FileNumber, Replace(le, "1", "9")
تغيير بدي.
يعني به جاي Write از Print استفاده کنيد.



موفق باشيد

one hacker alone
سه شنبه 25 مهر 1391, 23:21 عصر
ممنون دوست عزیز جواب داد
فقط دوستان دیگه که خواستن استفاده کنن خط
le = fileline
رو به شکل زیر تغییر بدن
le = le + fileline


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