السلام عليكــم ورحمـة الله وبركاتــه
الله يجزاكم خير كيف اقرا كلمة كلمة من النص
أحتاج برنامج او فنكشن تقرأ كلمة من النص ,,
طبعاً النص يكون في ملف
وشكراً مقدماً
السلام عليكــم ورحمـة الله وبركاتــه
الله يجزاكم خير كيف اقرا كلمة كلمة من النص
أحتاج برنامج او فنكشن تقرأ كلمة من النص ,,
طبعاً النص يكون في ملف
وشكراً مقدماً
اشرح أكثر
يعني محتاج إمكانية تحديد كلمة معينة
ولا عاوز طريقة ترجعلك كل كلمة لوحدها في array مثلا
ايوهـ ,
أنا احتاج اقرا كلمة من نص في ملف مثلاً أول كلمة كانت (go) => أقارنها مع كلمة يدخلها المستخدم وهكذا اكمل على كل النص واحسب كم مرهـ تكررت الكلمة ,
لأنه قبل كنت اقرا حرف حرف لكن الآن احتاج اقارن بالكلمات !!
شكراً مقدماً ,,
والله أخي ما فهمت قصدك أبدا
بس ده كود قراءة المكتوب في الملف كله وتقسيمه كلمات
string[] words = System.IO.File.ReadAllText("D:\\file.txt").Split(' ');
foreach (string str in words)
Console.WriteLine(str);حياك الله اخي OOP Emperor،
انا كمان ما افتهم لي المطلوب بالضبط.
[وسط]لا اله الا انت سبحانك انى كنت من الظالمين
[/وسط]
تحية طيبة :
ارجو ان يكون الملف في المرفقات هو ضالتك !!
سلاااام.
تم تعديل هذه المشاركة بواسطة خالد حاتم كخن في 5 ديسمبر 2008 في 15:39
الله يجزاكم خير ,, الحمدلله ضبط معي الكود الأول ,, وهذا اللي انا ابحث عنه ,
الثاني برضوا ضبط معي لكن االأول اسهل ,,
شكرا لكم جميعاً ,,
يا أخوان واجهة مشكلة :\
الآن طبقت البرنامج وضبط معي على ملف تكست فايل فيه فقط ( خمس جمل ) وقسمها لي لكلمات منفصله ,
لكن
عندما وضعت ملف حجمه كبير ويحتوي على اكثر من الف جملة وأردت تطبيق البرنامج ما تنفذ : ( ,
أعتقد المشكلة في حجم الملف هل فيه حل ,؟؟
جرب عل الكود الثاني !
المشكلة في حجم الملف وده بسبب إن الأمر File.ReadAllText بيقراه مرة واحدة أما لو استخدمت StreamReader يكون أفضل.
وده الكود مرة تانية باستخدام StreamReader:
using System;
using System.Collections.Specialized;
using System.IO;
namespace MainProject
{
class Program
{
static void Main()
{
StringCollection coll = new StringCollection();
using (StreamReader reader = new StreamReader("D:\\file.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
coll.AddRange(line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));
}
Console.WriteLine("Words:");
foreach (string word in coll)
Console.WriteLine(word);
}
}
}يا ياستاذ خالد حاتم
حبينا لو نستفيد بس ماحصلنا المرفقات
ياليت تقولي وين احصلها \
وشكرااا :D
الله يجزاكم خير ,,
الحمدلله ضبط بس بعد نص ساعة طلع الأوت بوت : ) ,
راح اجرب الكودين ان شاءالله عشان اسرع في الوقت
أخي هذا مثال كامل وعام generic خالص بإذن الله ينفعك:
using System;
using System.Collections.Specialized;
using System.IO;
namespace MainProject
{
class Program
{
private static string _fileName = "D:\\Test\\MyFile.txt";
static void Main()
{
Console.WriteLine("Use multi-threading? (Y)es/(N)o");
ConsoleKey key = Console.ReadKey(true).Key;
if (key == ConsoleKey.Y)
ReadFileAsync();
else if (key == ConsoleKey.N)
ReadFile();
else
Console.WriteLine("Bad input!");
}
static void ReadFile()
{
Console.WriteLine("Single-Threaded method called");
StringCollection coll;
using (Stream stream = Console.OpenStandardOutput())
coll = FileReader.ReadAllWords(_fileName, stream, Environment.NewLine);
}
static void ReadFileAsync()
{
Console.WriteLine("Multi-threaded method called");
using (Stream stream = Console.OpenStandardOutput())
{
ReadAllWordsCallback callback = new ReadAllWordsCallback(FileReader.ReadAllWords);
IAsyncResult result = callback.BeginInvoke(_fileName, stream, Environment.NewLine, null, null);
while (result.IsCompleted == false);
StringCollection coll = callback.EndInvoke(result);
}
}
}
public delegate StringCollection ReadAllWordsCallback(string fileName, Stream output, string separator);
public static class FileReader
{
public static StringCollection ReadAllWords(string fileName)
{ return ReadAllWords(fileName, null, null); }
public static StringCollection ReadAllWords(string fileName, Stream output)
{ return ReadAllWords(fileName, output, Environment.NewLine); }
public static StringCollection ReadAllWords(string fileName, Stream output, string separator)
{
if ((output != null) && (output.CanWrite == false))
throw new IOException("Invalid output stream.");
StringCollection coll = new StringCollection();
using (StreamReader reader = new StreamReader(fileName))
{
string line;
string[] words;
while ((line = reader.ReadLine()) != null)
{
words = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
coll.AddRange(words);
if (output != null)
foreach (string str in words)
{
byte[] bytes = System.Text.Encoding.Default.GetBytes(str + separator);
output.Write(bytes, 0, bytes.Length);
}
}
}
return coll;
}
}
}أخي هذا نفس الكود ولكنه المشروع كاملا
وتمت بعض التعديلات البسيطة وإضافة Permissions وغيرها.
http://www.4shared.com/file/74719929/b6261...ds_Example.html