یه برنامه سی شارپ دارم که ازفایل تکست می خونه میخوام با دیدن یه کاراکتری که مد نظرم هست اون خط رو رد کنه و بره سر خط بعدی .اگه ممکنه من رو راهنمایی کنید چه کدی باید استفاده کنم .
یه برنامه سی شارپ دارم که ازفایل تکست می خونه میخوام با دیدن یه کاراکتری که مد نظرم هست اون خط رو رد کنه و بره سر خط بعدی .اگه ممکنه من رو راهنمایی کنید چه کدی باید استفاده کنم .
سلام.
تاپیک زیر رو ببنید.
https://barnamenevis.org/showthread.p...06#post1634806
من میخوام تو فایل وقتی کاراکتری رو دیدم برم خط بعد.با تاپیکی که معرفی کردید جواب سوالم رو نگرفتم اگه ممکنه بیشتر توضیح بدید .
یک سوال دیگه هم دارم و اینکه این فایل من فارسی هست و من وقتی از فایل میخونم یکسری کاراکترهای مبهم به من میده که اون حروف معادل حروف فارسی که تو فایل من وجود داره نیست.اگه کسی میدونه لطفا راهنمایی کنه چطور میتونم از فایل فارسی بخونم به صورت کاراکتر کاراکتر.مثلا سلام رو میخوام به این صورت بخونم . س ل ا م
واسه بخش اول (اگر انتهای هر خط با enter مشخص شده باشه از 'n\' و اگر از نقطه استفاده شده از '.' استفاده کنید).
StreamReader sr = new StreamReader("d:\\test.txt");
string allchar = sr.ReadToEnd();
sr.Close();
string[] records = allchar.Split('\n');
for (int i = 0; i < records.Length; i++)
{
if (!records[i].Contains('a'))
{
//اگر هر خط شامل کاراکتر مورد نظر نباشه
}
else
{
//اگر خط، شامل اون کاراکتر باشه اون خط رو رد میکنه و به سراغ خط بعد میره
}
}
یعنی چی حروف معادل نیست؟. حروف بی ربط می بینی؟(مثل حالت ویروسی یا علامت سوال به شما میده؟)
آخرین ویرایش به وسیله veniz2008 : شنبه 19 اسفند 1391 در 16:00 عصر
ممنون از راهنماییتون میشه کد بالا رو یه مقدار توضیح بدید؟
منظورم همون علامت سوال هستش
آخرین ویرایش به وسیله yekta2010 : شنبه 19 اسفند 1391 در 09:37 صبح
یه حرف N قبل از ورودی ها بذار. مثلا :
SqlCommand cmd = new SqlCommand("SELECT * FROM tell where myname = N'" + textBox1.Text + "'");
توصیه میکنم از روش بالا در برنامه هاتون استفاده نکنید(بخاطر مسائل امنیتی برنامه) و از روش ارسال پارامترها کمک بگیرید.
ببینید میخوام از فایل بخونم مثلا به روش زیر :
FileStream fs = new FileStream("F:\\arshad\\ebhamzodayee\\Collection UNI.txt",FileMode.Open);
for (int i = 0; i < fs.Length; i++)
{
char ch=(char)(fs.Seek(i,SeekOrigin.Begin));
if (ch == ' ')//اگر کاراکتر مورد نظر بود
{
//بره خط بعد
}
else//اگر نبود
{
//اعمال مورد نظر}
حالا مشکلم اینه که مقداری که تو ch قرار میگیره مفهوم نیست یا همون علامت سواله چون فایلم فارسیه
و اینکه در اون قسمت که میخوام برم خط بعد چطوری برم
اگر فایلی که در اختیار دارید حروف داخلش علامت سوال هست که هیچی گاوتون زاییده ولی اگه فایلتون مشکلی نداره ولی موقع خوندن تبدیل به علامت سوال میشه یه راهش همونه که خدمتتون گفتم. البته میتونید فونت رو هم بر روی tahoma تنظیم کنید شاید مشکل برطرف بشه (قبل از دست زدن به فونت یه کپی از فایل بردارید که مشکلی واستون ایجاد نشه).
اما در مورد مشکلتون. قضیه رو پیچیده نکنید. شما باید تمام خط های برنامه رو داشته باشید و بعد در هر خط چک کنید که آیا کاراکتر مورد نظرتون وجود داره یا نه.اگر وجود نداشت که عمل مورد نظرتون رو انجام میدید و اگر وجود داشت که حلقه خودش میره سراغ خط بعدی. یادتون نره که خودتون هم باید انعطاف پذیر باشید و کد رو بسته به نیازتون تغییر بدید.
موفق باشید.
آخرین ویرایش به وسیله veniz2008 : شنبه 19 اسفند 1391 در 16:05 عصر
در مورد توضیحی که دادیددر رابطه با فایل من که فا رسی هست
SqlCommand cmd = new SqlCommand("SELECT * FROM tell where myname = N'" + textBox1.Text + "'");
این دستور مربوط به پایگاه داده هست من میخوام فایل رو که میخونم درست بخونم توی خوندن فایل مشکل دارم
برای چک کردن اینکه اون خط حاوی کاراکتر هست یا نه از متد contains استفاده کنید:
using (StreamReader sr = new StreamReader("F:\\arshad\\ebhamzodayee\\Collection UNI.txt", Encoding.UTF8))
{
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
if (!line.Contains(' '))
{
//اعمال مورد نظر
}
}
}