Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Modul

Автор: -Klim- 1.06.2007 23:52

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

Код

ogram hff;uses crt;
var f1:text;
    z,m,n:integer; k,f:string;
    begin clrscr;
    writeln('Введите имя файла');
    readln(f);
         assign(f1,f);
         reset(f1);
         n:=0;
         while not eof(f1) do
               begin
                   writeln('Введите символ:');  
                  readln(k); }   writeln(k);
                    m:=pos(f1,k);     writeln(m);
                                 if m=0 then
                                 writeln('Такого символа нет!')
                                begin
                                 readln;
                                 exit;
                                end
                                 else
                    n:=n+1;
                    delete('C:\privet.txt',m,1);  
               end;
         close(f1);
end.

Автор: мисс_граффити 1.06.2007 23:59

И что?...

Цитата
ogram hff

Ограм... Шрэк, это, кажется, огр...
Правильно, надо с самого начала написать, кому предназначен программный продукт. Обозначить целевую аудиторию, так сказать.
Цитата
writeln('Введите символ:');
readln(k); } <--к чему эта скобочка???
writeln(k); <-- зачем?!
...
m:=pos(f1,k); <--с учетом, что f1 - файл... лихо.

if m=0 then
writeln('Такого символа нет!')
begin <--зачем писать begin в середине программы?
readln;
exit;
end
else <--вообще непонятно к чему относится
...
delete('C:\privet.txt',m,1); <-- А зачем из этой строки что-то удалять? При чем здесь она вообще???


В общем, мой тебе совет: начни с установки паскаля... Иначе - никак.


Автор: Айра 2.06.2007 3:27

Да.. конечно программка у тебя Klim более чем оригинальная smile.gif
По-моему, можно сделать так:

program hff;
uses crt;
var f1: text;
n:integer;
k:string;
ch: char;
begin
clrscr;
assign(f1,'текст.txt'); {сразу создай там же, где и код программы}
{$I-} {файл с текстом и таким же именем, как будет в проге}
reset(f1);
{$I+}
if IOResult=0 then
begin
n:=0;
writeln('Введите символ:');
readln(k);
while not eof(f1) do
begin
read(f1,ch);
if ch=k then inc(n);
end;
close(f1);
if n=0 then writeln('Такого символа в тексте нет!')
else writeln('символ *',k,'* встречается в тексте ',n,' раз(-a)');
end
else writeln('файла с именем +текст.txt+ на диске нет');
end.

Что непонятно, спрашивай и установи Паскаль, на форуме должны быть ссылки, откуда можно его скачать.

дополнено: лишнее убрала smile.gif

Автор: klem4 2.06.2007 16:40

Это зачем ?

  
var
name,txt:string;
// ...
txt:=txt+ch;


?

Автор: Айра 2.06.2007 21:15

wink.gif Это я удалить забыла, когда проверяла нормально ли работает прога, выводила текст файла так... Переменную name тоже убрать забыла, она нигде не используется wink.gif

Автор: -Klim- 2.06.2007 21:24

Огромное спасибо Айрв и паскаль нашел. Только как модуль сделать я до сих пор не понял

Автор: Айра 2.06.2007 22:30

Пометь в программе или так выпиши, что именно непонятно, будем объяснять smile.gif

Автор: Dimusik 3.06.2007 12:39

Цитата(Айра @ 2.06.2007 19:30) *

Пометь в программе или так выпиши, что именно непонятно, будем объяснять smile.gif

что такое ioresult и можно как-нибудь обойтись без него или заменить?

Автор: volvo 3.06.2007 12:48

Если хочешь программу, которая обрабатывает ошибки, а не вылетает при первом же чихе - то это заменить нельзя... Если для "абы как - сдал и забыл", то ты вообще ошибся форумом...

А у меня встречный вопрос: ты не пробовал программирование чем-нибудь заменить? Или обойтись без него?