Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Считывание строки с апострфом


Автор: Dr Smth 26.10.2004, 11:24
Проблема: нужно считать из текстового файла строку с апострофом и сделать из неё строковую переменную. В самой программе такие переменные, вроде бы можно составлять, но вот если она читается из файла, то происходит что-то не так. Есть ли выход? (Переменная должна читаться только из файла?)
Т.е. можно ли из строки в файле типа: Д'Артаньян сделать переменную s := "Д'Артаньян";

Автор: Pakshin A. S. 26.10.2004, 18:01
Код

var
f:textfile;
s:string;
begin
AssignFile(f, FileName);
rewrite(f);
writeln(s, 'Д'+#39+'Артаньян');
reset(f);
readln(f, s);
CloseFile(f);
ShowMessage(s)
end;

ЧТо высветилось?

Автор: Zero 26.10.2004, 18:45
Pakshin A.S., совсем необязательно использовать таблицу ASCII, для вставки символов, в текст. Например, что вставить апостроф в сторку, специально сделана его замена:
' ─> ''.

Т.е. следующие записи эквивалентны:
Код
s:='Д'+#39+'Артаньян';   //s=Д'Артаньян

Код
s:='Д''Артаньян';   //s=Д'Артаньян


Хотя впринцепе без разницы...

Автор: Pakshin A. S. 26.10.2004, 19:36
Вот именно... :)

Автор: Dr Smth 27.10.2004, 09:09
С записью в файл всё понятно. Дело не в том.
Строки в текстовом файле создаются не программно, а в обычном блокноте. Сможет ли

Цитата(Pakshin @ 26.10.2004, 18:01)

readln(f, s);


нормально прочитать строчку с апострофом? (Надо попробовать).

Автор: Pakshin A. S. 27.10.2004, 18:57
Конечно должен. Т. к. процедура readln() счиывает все символы до признака конца строки, и опостроф - не символ признака конца строки!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)