var arr: array [1..20] of string; ch,c: Char; count,d,a,i,o: Integer; st,s: String; t: text; fs:text; begin a:=0; o:=0; count:=0; assign(t,'input.txt'); assign(fs,'output.txt'); reset(t); rewrite(fs); while not eof(t) do begin Inc(a); readln(t,arr[a]); end; for ch:='a' to 'я' do bedin for d:=1 to 20 do begin st:=arr[d]; if not (st='') then begin repeat inc(o); if st[o]=ch then begin inc(count); end; until o=length(st); o:=0; end; end; if not (count=0) then begin str(count,s); s:=ch+' - '+s; writeln(fs,s); count:=0; end else count:=0; end; close(t); close(fs); readln
итак мне нужно вывести в алфавитном порядке и подсчитать количество букв в фразе.. вот это программка... но у меня выдается ОШИБКА в месте 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] of string; c:string; m:integer; begin m:=0; assign (I,'Input/txt.txt’); reset(I); while not Eof(I) do begin m:=m+1; readln(I, A[m]); end; close(I); for j:=1 to m do for k:=1 to m-j do if A[k]>A[k+1] then begin c:=A[k]; A[k]:=A[k+1]; A[k+1]:=c; end; assign(0,'output/txt.txt’); rewrite(0); for k:=1 to 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=0 then begin while not Eof(Inp) do begin inc(m); read(Inp,Ch); st:=st+ch; end; Close (Inp); end; writeln('Прочитано из файла: ',st,''); assign(Out,'Output.txt'); {$I-} rewrite(Out); {$I+} if IOResult=0 then begin for j:=2 to m do for i:=m downto j do if st[i-1]>st[i] then begin 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=0 then begin while not Eof(Inp) do begin 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=0 then begin for j:=2 to m do for i:=m downto j do if st[i-1]>st[i] then begin c:=st[i-1]; st[i-1]:=st[i]; st[i]:=c; end; st1 := ''; m := 1; for i := 1 to length(st) do if st[i] <> st[i + 1] then begin str(m, st2); st1 := st1 + st[i] + ' - ' + st2 + ' '; m := 1; end else m := m + 1;
неа.. не совсем работает записываем слово "СЛОВО" в файл 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 ребят огромное спасибо!! Очень помогли... правда!! ...итак ТЕМА может быть закрыта!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.