Просмотр полной версии : Поиск фрагмента строки[c#]
Как организовать поиск фрагмента строки массива...
зы
заранее спс
String.indexOf("фрагмент"); // это?
Вобщем, есть прога, которая считывает данные с текстового файла, надо чтобы пользователь вводил искомый текст, а выводило строку содержащую данный текст
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введіть назву файла");
string fname = "c:\\" + Console.ReadLine();
Console.WriteLine("Введіть текст для пошуку");
string ftext = Console.ReadLine();
if (!File.Exists(fname))
{
Console.WriteLine("{0} не існує", fname);
}
using (StreamReader sr = File.OpenText(fname))
{
string input;
input = null;
int c = 0;
while ((input = sr.ReadLine()) != null)
{
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введіть назву файла");
string fname = "c:\\" + Console.ReadLine();
Console.WriteLine("Введіть текст для пошуку");
string ftext = Console.ReadLine();
if (!File.Exists(fname))
{
Console.WriteLine("{0} не існує", fname);
}
using (StreamReader sr = File.OpenText(fname))
{
string input;
input = null;
int c = 0;
while ((input = sr.ReadLine()) != null)
{
//////////////////////////////////////////////////////////////////
// КАК ЕГО ПРАВИЛЬНО ПРИЛЕПИТЬ СЮДА???
///////////////////////////////////////////////////////////////////
string z=input.IndexOf(ftext);//????
if ( ?????? )
{
Console.WriteLine(input);
}
}
Console.WriteLine(c);
sr.Close();
}
Console.ReadKey();
}
}
}
if (z==null)
{
Console.WriteLine(input);
}
}
Console.WriteLine(c);
sr.Close();
}
Console.ReadKey();
}
}
}
что-то вроде :
...
nput = null;
int c = 0;
while ((input = sr.ReadLine()) != null)
{
if ( input.indexOf("строка") > 0)
{
...
нашли совпадение
...
}
}...
12usver12
27.05.2008, 21:06
Держи элегантный код
string[] mass = new StreamReader(@"C:\12.txt",Encoding.Default).ReadToEnd().Split(new string[] { "\r\n" }, StringSplitOptions.None);
foreach (string stroka in mass) { if (stroka.IndexOf(fText) != -1) { Console.WriteLine(stroka); } }
12usver12 > а если файл больше 100 - 500 кб ?
12usver12
27.05.2008, 23:13
может ты хотел сказать если файл больше 5-10 мег ?
ну можно binaryreader , правда чуть больше гемора прибавится,
хотя ето наверна из методички какой то методы для студентов, наверно там подразумевается через ReadLine() тогда еще проще
/me последнее время привык экономить каждый байт ...
(не про C# )
Было бы легче использовать regexp-ы. =\
что-то вроде :
...
nput = null;
int c = 0;
while ((input = sr.ReadLine()) != null)
{
if ( input.indexOf("строка") > 0)
{
...
нашли совпадение
...
}
}...
Выдаёт ошибку:
Error 1 'string' does not contain a definition for 'indexOf' and no extension method 'indexOf' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?) D:\Documents and Settings\Администратор\Мои документы\Visual Studio 2008\Projects\ConsoleApplication2\ConsoleApplicati on2\Program.cs 31 31 ConsoleApplication2
geezer.code
28.05.2008, 00:38
string str = String.Empty;
using (StreamReader sr = new StreamReader("in.txt"))
{
while (!sr.EndOfStream)
{
str=sr.ReadLine();
if (str.Contains("ищем это"))
Console.WriteLine(str);
}
}
может всьо таки поможет )
Всем огромное спасибо, может посоветуете книжки какиенить а то я нигде не встречал многие из используемых в примерах функций.....
geezer.code
28.05.2008, 01:22
Manning - Microsoft .NET for Programmers
Manning - Windows Forms Programming with C#
Wiley - C# Bible
Sybex - Visual C# .NET Programming
O'Reilly - Programming C# for Visual Studio .NET - 2nd Edition
Русская редакция Петцолъд Ч. Программирование для Microsoft Windows на С#. В 2-х томах.
вот это всьо можно скачать в инете, но это всьо по 1 или 2 спецификации с# и .NET 1.*
2.0 по третьей спецификации и .NET3.* имхо лучше смотреть соответствующие версии МСДН
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot