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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2008, 20:33   #1
TheKnyazz
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 40
По умолчанию Помогите разбить прогу!

Товарищи программеры, извиняюсь за тупейшие вопросы, но я чет никак не могу понять, как мою программу можно еще более упростить используя процедуры и ф-ции. Помогите пожалуйста. Вот мой исходник(всё работает). Задание : написать программу считывающую значения из файла, и выводящую на экран только те строки которые начинаются со знака тире, перед которыми могут быть только пробельные символы.Не могу понять, и всё( как тут еще более упростить??
Код:
 Program Lab7;
   Const
      Len=100;
   Var
        in_file,out_file :text;
        n:integer;
        s:string[100];
        c:char;
 Begin
    Assign (in_file,'d:\lab7.txt');
    Assign (out_file, 'd:\lab71.txt');
      reset(in_file);
      rewrite(out_file);
          n:=0;
          while not eof(in_file) do
              begin
            inc(n);
            readln(in_file,s);            
             If s[1]= '-' then 
               begin 
                   writeln(s);
                   writeln (out_file,s);
               end;
          end;    
          
      close (in_file);
      close (out_file);
     Writeln('Для выхода нажмите <Enter>');
     readln;
 End.

Последний раз редактировалось TheKnyazz; 24.11.2008 в 20:36.
TheKnyazz вне форума Ответить с цитированием
Старый 24.11.2008, 22:22   #2
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

Задание : написать программу считывающую значения из файла, и выводящую на экран только те строки которые начинаются со знака тире, перед которыми могут быть только пробельные символы.

В задано вывести на экран строки, а ты их еще и выводишь во второй файл?


If s[1]= '-' then т.е. ты не предусматриваешь что в строке перед тире могут быть пробелы?

И что тебе надо просто разбить листинг на процедуры? больше я не вижу как еще можно упростить)))

Последний раз редактировалось Викдон; 24.11.2008 в 22:26.
Викдон вне форума Ответить с цитированием
Старый 24.11.2008, 23:21   #3
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

написать программу считывающую значения из файла, и выводящую на экран только те строки которые начинаются со знака тире, перед которыми могут быть только пробельные символы.

uses crt;
var bloknot:text;
s:string;
c:char;
i:integer;
begin
clrscr;
assign(bloknot,'C:\1.txt');
reset(bloknot);
while not Eof(bloknot) do
begin
read(bloknot,s);
for i:=1 to length(s) do
begin
if s[i]='-' then
begin
writeln(s);
readln(bloknot);
break;
end;

if s[i]<>' ' then
begin
readln(bloknot);
break;
end
end {for}

end;{While}


close(bloknot);
readln;
Викдон вне форума Ответить с цитированием
Старый 25.11.2008, 00:12   #4
TheKnyazz
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 40
По умолчанию

спасибо,мне надо решить по условию максимально упрощая разбиением на функции, спасибо..понял, что про пробел забыл(ща попробую!
TheKnyazz вне форума Ответить с цитированием
Старый 25.11.2008, 00:21   #5
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

Тут конечно можно разбить на функции, но смысла в этом нету))
Викдон вне форума Ответить с цитированием
Старый 25.11.2008, 00:40   #6
TheKnyazz
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 40
По умолчанию

Я ж об этом и говорил преподу, а он, учитесь использовать, набирайтесь опыта...
TheKnyazz вне форума Ответить с цитированием
Старый 25.11.2008, 01:35   #7
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

uses crt;
var bloknot:text;
strochka:string;



Function Odin (var blok:text):string; {Передается файл, фун-я читает по одной строчке файла,
если строчка удов условию возвращает ее, в противном случае возвращает пробел}
var i:integer;
stroka:string;
begin
read(bloknot,stroka);
for i:=1 to length(stroka) do
begin
if stroka[i]='-' then
begin
odin:=stroka;
exit;
end;

if stroka[i]<>' ' then
begin
odin:=' ';
exit;
end
end {for}

end;



begin
clrscr;
assign(bloknot,'C:\1.txt');
reset(bloknot);
while not Eof (bloknot) do
begin
Strochka:=odin(bloknot);
if Strochka<>' ' then
writeln(Strochka);
readln(bloknot);
end;


close(bloknot);
readln;
end.
Викдон вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разбить строку Ceprey Общие вопросы C/C++ 10 24.12.2009 20:47
Разбить на группы Romuald Microsoft Office Excel 2 04.11.2008 14:40
Разбить файл на 4 части borzoni Паскаль, Turbo Pascal, PascalABC.NET 7 31.05.2008 10:51
Разбить список на части fotobra Microsoft Office Excel 1 23.02.2008 03:13
разбить ячейку и ивписать тхт Axe_L Помощь студентам 2 22.10.2007 14:50