итак мне нужно вывести в алфавитном порядке и подсчитать количество букв в фразе.. вот это программка... но у меня выдается ОШИБКА в месте reset(t); вот такая: path no found Что это значит? почему не работает программка????
nikita182
19.05.2007 18:48
неверный путь попробуй полный ввести
ROxY
19.05.2007 21:00
что полный-то???
мисс_граффити
19.05.2007 21:02
полный путь например: 'c:\docs\input.txt' кстатит, файл-то создан вообще?
ROxY
19.05.2007 21:04
и еще а можно вот так вот...
var k,j:integer; I,O: text;
A: array [1..100] ofstring;
c:string; m:integer;
begin
m:=0;
assign (I,'Input/txt.txt’);
reset(I);
whilenot Eof(I) dobegin
m:=m+1;
readln(I, A[m]);
end;
close(I);
for j:=1to m dofor k:=1to m-j doif A[k]>A[k+1] thenbegin
c:=A[k];
A[k]:=A[k+1];
A[k+1]:=c;
end;
assign(0,'output/txt.txt’);
rewrite(0);
for k:=1to m do
writeln(0,A[k]);
close(0);
end.
помогите закончить... нужно подсчитать количество букв...
nikita182
19.05.2007 21:11
создай файл, например: qwerty.txt засунь в папку какую - нибудь, например: с:\pascal\qwerty.txt и при связке пиши : assign (I, 'с:\pascal\qwerty.txt');
ROxY
19.05.2007 21:12
ну да создан..
nikita182
19.05.2007 21:19
полный текст задания в студию!
мисс_граффити
19.05.2007 21:20
Цитата
Input/txt.txt
не /, а \
ROxY
19.05.2007 21:24
это не важно.. я просто взяла как input.txt проблема в том что я изменила...но теперь вот в rewrite(fs) так же ошибку выдает.. создать файл с output.txt??...и пустой или как?
ROxY
19.05.2007 22:01
текст такой: нужно в алфавитном порядке расположить букву находящуюся во фразе(в файловом тексте) и подсчитать их количество.. В дальнейшем при запуске этой программы входным файлом должен стать файл отчета со служебной информацией в результате работы должен быть получен текст из фразы в файле с именем output.txt
nikita182
19.05.2007 22:05
хм..файл содержит набор букв рандомных?
мисс_граффити
19.05.2007 22:05
Цитата
assign(0,'output/txt.txt’); rewrite(0);
у тебя здесь что, нули?
ROxY
19.05.2007 22:11
нет там не нули...
Добавлено через 3 мин. nikita182, ну да... а что же все таки делать с файлом output??
nikita182
19.05.2007 22:14
Цитата(ROxY @ 19.05.2007 19:01)
текст такой: нужно в алфавитном порядке расположить букву находящуюся во фразе(в файловом тексте) и подсчитать их количество.. В дальнейшем при запуске этой программы входным файлом должен стать файл отчета со служебной информацией в результате работы должен быть получен текст из фразы в файле с именем output.txt
это дословно или твоя интерпретация?
ROxY
19.05.2007 22:17
в принципе начиная от "в дальнейшем при запуске этой программы....." дословно
nikita182
19.05.2007 22:20
можно при запуске программы проверять сперва output, если нет такого, работать с input'ом, а если есть то работать с ним.
есессно, создавать output в программе.
мисс_граффити
19.05.2007 22:21
для rewrite совсем не нужно, чтобы файл был создан. можешь прикрепить свой pas-файлик как он есть?
ROxY
19.05.2007 22:41
уффф...капец как запарилась... все бы ничего.. только запускается программа...и ничего... а output в папке с Паскалем появился..
Добавлено через 2 мин. вот что выдается... runtime error 002 at 0bf9:0058
вот что выдается... runtime error 002 at 0bf9:0058
У меня было тоже самое. Потом я создала файлы Input и Output в той же папке, где находится код программы (файл.pas), путь прописывала неполный (т.е. только название и расширение) и чтение происходило без ошибок. Попробуй так..
ROxY
19.05.2007 23:13
нее...не получилось.. сейчас вообще выдает file not found
volvo
19.05.2007 23:16
Ты нормально можешь ответить на вопрос: ГДЕ именно происходит ошибка (на каком операторе)? И где у тебя СЕЙЧАС находится файл Input.TXT ?
ROxY
19.05.2007 23:20
input.txt находится в папке с pas. файлом...
Айра
19.05.2007 23:24
Цитата
нее...не получилось.. сейчас вообще выдает file not found
Значит проверь еще раз, где что находится и как называется (может на букву ошиблась или регистор разный, у меня так бывало ). У меня это работает, правда я проверя на том коде, который ты выложила в посте №5. А тот, что прикреплен, у меня вообще не работает, но сбой происходит где-то дальше, не в чтении..
Айра
20.05.2007 3:26
Вот мой код программы. Проверяла на Input = 'дгвба', Output получился = 'абвгд' - значит работает)) IOresult - специальная функция, позволяющая выполнять файловые операции без сообщений об ошибках.
uses wincrt;
var i,j,m:integer;
Inp,Out: text;
st:string;
c,ch: char;
begin
m:=0;
st:='';
assign (Inp,'Input.txt');
{$I-}
reset(Inp);
{$I+}if IOResult=0thenbeginwhilenot Eof(Inp) dobegin
inc(m);
read(Inp,Ch);
st:=st+ch;
end;
Close (Inp);
end;
writeln('Прочитано из файла: ',st,'');
assign(Out,'Output.txt');
{$I-}
rewrite(Out);
{$I+}if IOResult=0thenbeginfor j:=2to m dofor i:=m downto j doif st[i-1]>st[i] thenbegin
c:=st[i-1];
st[i-1]:=st[i];
st[i]:=c;
end;
writeln('Записано в файл: ',st,'');
write(Out,st);
close(Out);
end;
end.
Что непонятно - спрашивай, объясним
nikita182
20.05.2007 4:30
Цитата(Айра @ 20.05.2007 0:26)
IOresult - специальная функция, позволяющая выполнять файловые операции без сообщений об ошибках.
IOresult возвращает код после операции ввода/вывода убери директивы компилятора {$I-} и {$I+} и увидишь))
to ROxY: только wincrt замени на crt ))
Айра
20.05.2007 11:04
Цитата
IOresult возвращает код после операции ввода/вывода убери директивы компилятора {$I-} и {$I+} и увидишь))
И это тоже Попробуй оставить директивы, неправильно обозвать)) файл и убрать IOresult. Программа выдаст ошибку, а если оставить условие, то она отработает нормально, просто не получит данные.. Поэтому IOresult в сочетании с директивами и обеспечивает нормальную работу файловых операций. Я это имела ввиду в том посте))
ROxY
20.05.2007 15:03
Айра.. спасибо... но вот мне нужно ещё чтобы подсчитало количество букв в фразе допустим: МАМА А 2 М 2... вот...
ROxY
20.05.2007 15:23
и ещё у меня проблема с wincrt... файл wincrt.tpu не найден..
nikita182
20.05.2007 16:41
черт, мои посты игнорируют ((((
Цитата(nikita182 @ 20.05.2007 1:30)
to ROxY: только wincrt замени на crt ))
uses crt;
var i,j,m:integer;
Inp,Out: text;
st, st1, st2:string;
c,ch: char;
begin
m:=0;
st:='';
assign (Inp,'Input.txt');
{$I-}
reset(Inp);
{$I+}if IOResult=0thenbeginwhilenot Eof(Inp) dobegin
inc(m);
read(Inp,Ch);
st:=st+ch;
end;
Close (Inp);
end;
writeln('chitka: ',st,'');
assign(Out,'Output.txt');
{$I-}
rewrite(Out);
{$I+}if IOResult=0thenbeginfor j:=2to m dofor i:=m downto j doif st[i-1]>st[i] thenbegin
c:=st[i-1];
st[i-1]:=st[i];
st[i]:=c;
end;
st1 := '';
m := 1;
for i := 1to length(st) doif st[i] <> st[i + 1] thenbegin
str(m, st2);
st1 := st1 + st[i] + ' - ' + st2 + ' ';
m := 1;
endelse
m := m + 1;
writeln('zapisano: ',st,'');
writeln(Out,st);
write(Out,st1);
close(Out);
end;
end.
вроде работает.
ROxY
20.05.2007 21:16
неа.. не совсем работает записываем слово "СЛОВО" в файл input в результате получаем 2;>>Aюя -52-1;-1>-2A-1ю-1я-1 что ЭТО???
Айра
20.05.2007 22:55
Цитата
не совсем работает
У меня все работает нормально.. Программа выводит в файл "встречаемость" каждой буквы: в - 1 л - 1 о - 2 с - 1 . Может какие-то проблемы с кодировкой самого файла или что-то в этом роде?..
Айра
21.05.2007 17:18
Сейчас попробовала использовать вместо txt файлов doc'и => если так делать, то появляются эти каракули... Ты точно txt используешь, программа сразу работала некрасиво, или как?
ROxY
21.05.2007 17:31
АЙРА... и Nikita182 ребят огромное спасибо!! Очень помогли... правда!! ...итак ТЕМА может быть закрыта!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.