PDA

View Full Version : مبتدی: جستوجو در فایل



scmorfi
دوشنبه 16 آبان 1390, 10:00 صبح
با سلام
من یه کمک اورژانسی می خواستم
می خوام یع برنامه بنویسم که بره تو یه فیل تکست جستوجو کنه a1 و a2 رو به از a1 تا a2 رو هرچی نوشته هست پاک کنه
کدش رو کسی نداره؟

kaveh.norozi
دوشنبه 16 آبان 1390, 10:25 صبح
سلام سوالت واضح نیست منظورتو دقیق بگو ؟

scmorfi
دوشنبه 16 آبان 1390, 11:23 صبح
می خوام تو فایل تکست 2 تا کلمه که مثلا a1 خط 3 هست a2 خط 6
بعد بیاد از خط 2 تا 6 رو پاک کنه

M.KH-SH
دوشنبه 16 آبان 1390, 11:51 صبح
حالا اگه این a1 تو خط 5 بود a2 تو خط 3 هم بود چی؟
یا اگه تو یک خط اینا 300 بار تکرار شده باشن چی؟
دوست عزیز یک ثابت باید باشه که منحصرا در این 2 خط باشه نه کلمه a1 و a2 که امکان داره در یک متن بازم باشه

در هر صورت شما باید با توابع split و mid اشنایی داشته باشیو با حلقه ها هم به خوبی بتونی کار کنی این یک روش هست.

a1 , a2 به فرض تکرار شدن کلمه مورد نظر هست

Hossis
دوشنبه 16 آبان 1390, 16:06 عصر
باید اول کل متن را در یک متغیر بریزید
بعد اندیس نقطه الف و ب را بدست بیارید
بعد با تابع REMOVE این قسمت رو پاک کنید
بعد هم متن بدست آمده را ذخیره کنید

به این کد توجه کنید
DIM FN AS Sting ="c:\01.txt"
Dim txt as string =IO.file.readAllLine(fn)
Dim a As integer =txt.indexOf("a1")
Dim b As integer=txt.indexof("a2") -a
txt=txt.remove(a,b)
io.file.writeAllText(fn,txt)

scmorfi
دوشنبه 16 آبان 1390, 16:12 عصر
باید اول کل متن را در یک متغیر بریزید
بعد اندیس نقطه الف و ب را بدست بیارید
بعد با تابع REMOVE این قسمت رو پاک کنید
بعد هم متن بدست آمده را ذخیره کنید

به این کد توجه کنید
DIM FN AS Sting ="c:\01.txt"
Dim txt as string =IO.file.readAllLine(fn)
Dim a As integer =txt.indexOf("a1")
Dim b As integer=txt.indexof("a2") -a
txt=txt.remove(a,b)
io.file.writeAllText(fn,txt)
dada be in khat gir mide IO.File.ReadAllLines(FN)

Mr'Jamshidy
دوشنبه 16 آبان 1390, 18:05 عصر
dada be in khat gir mide IO.File.ReadAllLines(FN)

احتمالا آدرس فایل رو عوض نمیکنی

DIM FN AS Sting ="c:\01.txt"

اگر در آدرس مشخص شده فایلی با اون نام باشه خطا نمیده!

Hossis
دوشنبه 16 آبان 1390, 18:52 عصر
dada be in khat gir mide IO.File.ReadAllLines(FN)
حق باشماست
من فرصت نکردم کد رو تست کنم
اورژانسی نوشته بودم
حالا که تست کردم درست شد

Dim FN As String = "c:\01.txt"
Dim txt As String = IO.File.ReadAllText(FN)
Dim a As Integer = txt.IndexOf("a1")
Dim b As Integer = txt.IndexOf("a2") - a
txt = txt.Remove(a, b)
IO.File.WriteAllText(FN, txt)