Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2014, 05:33   #1
sayser
 
Регистрация: 11.05.2014
Сообщений: 7
По умолчанию дан текстовый файл. Распечатайте, строки, начинающиеся с заданного слова (Паскаль)

Пусть дан текстовый файл. Распечатайте, строки, начинающиеся с заданного слова.
Не могу разобраться с данной задачей так как я заочник, прошу помочь заранее спасибо.
Работа с файлами (Pascal).
sayser вне форума Ответить с цитированием
Старый 12.05.2014, 07:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
const w='слово';
var f:text;s:string;
begin
 assign(f,'file');reset(f);
 while not eof(f) do begin
  readln(f,s); if copy(s,1,Length(w))=w then writeln(s);
 end;close(f); readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2014, 13:21   #3
sayser
 
Регистрация: 11.05.2014
Сообщений: 7
По умолчанию чегото нехватает

надо найти нетолько строку со словом и распечатать ее но и продолжить до конца
sayser вне форума Ответить с цитированием
Старый 12.05.2014, 13:31   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

предложенный Вам код напечатает все строки, которые начинаются с заданного вами слова.

Обратите внимание, что сравнение регистрозависимое (т.е. если Вы задали слово молоко, то строки, которые начинаются с Молоко или МОЛОКО не будут напечатаны)!

p.s. на самом деле код ищет не слова, а просто совпадение начала строки и заданного вами текста.

таким образом, если Вы зададите слово "Раб", То найдутся строки, начинающиеся на эти буквы, например, "Рабочая неделя начинается с понедельника")
Или наоборот, если в переменной w зададите словосочетание "таким образом", то будут напечатаны строки, которые начинаются "таким образом..."
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2014, 13:39   #5
sayser
 
Регистрация: 11.05.2014
Сообщений: 7
По умолчанию в чем ошибся? друган мой решил помочь

Код:
var 
s,sl,sk:string;
i,k:integer;
begin
writeln("vvedite slovo");
readln(s);
assign(input,'in.txt');
reset(input);
repeat
readln(input,sl);
k:=lenght(s);
if k<=length(sl) then begin 
sk='';
for i:=1 to k do
sk= sl[i];
if (k=length(sl)) and (sk=s) then writeln(sl);
if (k<length(sl)) and (sk+sl[i+1]=s+' ') then writeln(sl); 
end;
repeat eof(input);
close(input);
end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 13.05.2014 в 11:04.
sayser вне форума Ответить с цитированием
Старый 12.05.2014, 13:43   #6
sayser
 
Регистрация: 11.05.2014
Сообщений: 7
По умолчанию вот еще пример:

Код:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string str=null;
            int min = 5;
            int max = 5;
            
 
            StreamReader file1 = new StreamReader(@"c:\1.txt");
            StreamReader file2 = new StreamReader(@"c:\2.txt");
            StreamReader file3 = new StreamReader(@"c:\3.txt");
            
            while ((str = file1.ReadLine()) != null)
            {
                int i = Convert.ToInt16(str);
                if (i < min)
                {
                    min = i;
                }
            }
 
            while ((str = file2.ReadLine()) != null)
            {
                int i = Convert.ToInt16(str);
                if (i > max)
                {
                    max = i;
                }
            }
            Console.WriteLine(min+":"+max);
            while ((str = file3.ReadLine()) != null)
            {
                if (str.StartsWith("5"))
                Console.WriteLine(str);
            }
            Console.ReadLine();
        }
    }
}



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 13.05.2014 в 11:04.
sayser вне форума Ответить с цитированием
Старый 12.05.2014, 15:35   #7
sayser
 
Регистрация: 11.05.2014
Сообщений: 7
По умолчанию ответ жду

примеры решены правильно или нет?
sayser вне форума Ответить с цитированием
Старый 13.05.2014, 10:55   #8
sayser
 
Регистрация: 11.05.2014
Сообщений: 7
По умолчанию Пусть дан текстовый файл. Распечатайте, строки, начинающиеся с заданного слова.

Код:
вот примеры сделал к задаче посоветуйте пожалуйста правильно не правильно.
var 
s,sl,sk:string;
i,k:integer;
begin
writeln("vvedite slovo");
readln(s);
assign(input,'in.txt');
reset(input);
repeat
readln(input,sl);
k:=lenght(s);
if k<=length(sl) then begin 
sk='';
for i:=1 to k do
sk= sl[i];
if (k=length(sl)) and (sk=s) then writeln(sl);
if (k<length(sl)) and (sk+sl[i+1]=s+' ') then writeln(sl); 
end;
repeat eof(input);
close(input);
end.
 
Вот еще пример:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str=null;
int min = 5;
int max = 5;


StreamReader file1 = new StreamReader(@"c:\1.txt");
StreamReader file2 = new StreamReader(@"c:\2.txt");
StreamReader file3 = new StreamReader(@"c:\3.txt");

while ((str = file1.ReadLine()) != null)
{
int i = Convert.ToInt16(str);
if (i < min)
{
min = i;
}
}

while ((str = file2.ReadLine()) != null)
{
int i = Convert.ToInt16(str);
if (i > max)
{
max = i;
}
}
Console.WriteLine(min+":"+max);
while ((str = file3.ReadLine()) != null)
{
if (str.StartsWith("5"))
Console.WriteLine(str);
}
Console.ReadLine();
}
}
}

Последний раз редактировалось sayser; 13.05.2014 в 17:54.
sayser вне форума Ответить с цитированием
Старый 13.05.2014, 11:09   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1-е. не надо создавать ещё одну тему - дублирование сообщений или тем называется КРОССПОСТИНГ и запрещено правилами форума.
Если Вам никто не отвечает, значит, нечего сказать Вам...


2-е. код надо форматировать специальными тегами (я выше отформатировал ваши сообщения, обратите на это внимание).

3-е. Вас не смущает, что первый пример на Паскале, а второй код - это C# ?!

4-е. из кода на C# вам нужно только это:
Код:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           StreamReader file3 = new StreamReader(@"c:\3.txt");
            
            while ((str = file3.ReadLine()) != null)
            {
                if (str.StartsWith("5"))
                Console.WriteLine(str);
            }
            Console.ReadLine();
        }
    }
}
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан текстовой файл, напечатать в алфавитном порядке все слова из заданного файла, имеющие длину n. Casillas1 Помощь студентам 1 20.01.2014 23:41
Паскаль(файлы). Дан текстовый файл f. Вывести все строки файла длина которых больше 30 символов. Артемdgty Помощь студентам 0 09.10.2013 00:37
Дан текстовый файл. Нужно удалить нечетные строки Neim Помощь студентам 1 27.12.2012 23:04
Дан текстовый файл.Напечатать все его строки начинающиеся с символа "Т". Richik123 Паскаль, Turbo Pascal, PascalABC.NET 2 31.05.2012 19:37
Дан динамический массив строк, вывести все слова начинающиеся с большой буквы C++ builder Memphi[s] Помощь студентам 0 02.03.2011 16:34