13.02.2011, 18:10 | #11 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Код:
VAR f,f1,f2:Text; S,Sx,Sy:String; i:Integer; b:boolean; BEGIN Assign(f,'tst_in.txt'); ReSet(f); Assign(f1,'tst_out1.txt'); ReWrite(f1); Assign(f2,'tst_out2.txt'); ReWrite(f2); WriteLn('Enter the word:'); ReadLn(Sx); REPEAT ReadLn(f,S); b:=false; for i:=1 to Length(S)-Length(Sx) do if S[i]=Sx[1] then begin Sy:=Copy(S,i,Length(Sx)); if Sx=Sy then b:=true; end; If b then WriteLn(f2,S) else WriteLn(f1,S); UNTIL EoF(f); Close(f); Close(f1); Close(f2); END. |
13.02.2011, 18:10 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Зачастую проблемы у людей очень похожие, обратите внимание на это Редактирование документа в фотошопе Редактирование InstallShield Wizard Считывание текстового файла команда: Windows Type Редактирование снимков с мобильного (2megapixels) в Photoshop CS3 |
13.02.2011, 19:14 | #12 (permalink) |
Member
Регистрация: 13.02.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Получилось так:
program z1; uses crt; var f,f1:text; s: string; begin assign (f, 'D:\Text1.txt'); reset(f); assign (f1, 'D:\Text2.txt'); rewrite (f1); while not eof (f) do begin readln (f,s); if (s[1]='слово') then writeln(f1,s); end; Close(f); close(f1); end. Программа ошибок не выдает, второй текстовый файл создает, но строки не переносит. Что может быть не так? |
13.02.2011, 19:28 | #14 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Прежде всего, позвольте полюбопытствовать - а чем Вас предложенный мною вариант не устраивает? Уж он-то ошибок не содержит. Проверено, естественно. Ну ладно, хотите по-своему - пожалуйста. 1. Ошибка здесь: if (s[1]='слово') then . Дело в том, что s[1] означает ПЕРВЫЙ СИМВОЛ строки s (например, если s='Hayeng', то s[1]='H'), и Вы пытаетесь этот первый символ сравнить с некоей строковой переменной 'слово'. Естественно, результат подобного сравнения будет всегда отрицательным. 2. Даже если Вы уберете [1], т.е. оставите if (s='слово') then , то получите решение не исходной, а сильно упрощенной задачи. В этом случае программа будет реагировать не на строки, СОДЕРЖАЩИЕ 'слово', а на строки, ЦЕЛИКОМ представляющие собой 'слово' и не содержащие ни одного другого символа. Советую всё же попробовать разобраться с моим кодом - он содержит исчерпывающее решение задачи. Впрочем, дело Ваше. |
|
13.02.2011, 19:32 | #15 (permalink) |
Member
Регистрация: 13.02.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Понятно, не все так просто.
За предложенный Вами вариант большое-пребольшое спасибо. Я увлеклась написанием своего "чуда" и не сразу заметила Ваше сообщение с программой ))) |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
14.02.2011, 22:18 | #18 (permalink) |
Member
Регистрация: 13.02.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Подскажите пожалуйста, а если длина строки более 255 символов, можно ли заменить чем-нибудь string? Или нужно вводить массив?
Pchar не хочет работать с командой Readln. |
14.02.2011, 22:56 | #19 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Заменить-то String на Array of Char в принципе можно, только вот как быть с командой Copy? Даже и не знаю. А откуда взялись строки с длиной больше 255 символов? ЧуднО... |
|
14.02.2011, 23:04 | #20 (permalink) |
Member
Регистрация: 13.02.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Строки в текстовом файле оказались длиннее 255 символов. И поэтому программа все, что больше 255 символов в строке не воспринимала, и выборка была неполной. Не знаю вобщем, что делать.
А про Pchar вычитала в учебнике, еще был какой-то Antistring непонятный... |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|