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

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

Форум «Всё о Паскале» _ Задачи _ Запись текста в файл и etc.

Автор: DEN_NAU 25.09.2003 18:18

??? Как нистранно, но завис в основном на теме "Запись текста в файл". Условие вроде как простые, но ...

- Записать текст в файл F. Переписать в перевернутом виде слова файла F в файл H (порядок слов в файле H должен совпадать с порядком исходных слов в файле F).

Кто может? Помогите плз ...

Автор: APAL 25.09.2003 18:52

Да тут вроде бы ничего нет сложного.

Если принять условие, что слова - это куски текста разделенные пробелами и знаками пунктуации (если конечно не надо переворачивать и пунктуацию тоже), то разобрать строку по словам не сложно. Ну а поменять порядок букв в слове - еще проще.

Попробуй сам справиться. Главное сделать правльное определение "слов".

Автор: DEN_NAU 27.09.2003 11:03

Да вот начинаю писать прогу типа, чтобы только записать текст в текстовый файл. Все вроде пишется, но не закрывается, тоесть какой-то бесконечный ввод данных?

Код
...
var F: text;
...

BEGIN

assign(F,'c:tp7text_1.txt'); {связываем переменную с файлом}
rewrite(F);
while (not eof(input)) do {цикл ввода пока не достигнет конца ввода}
  begin
    read(symb); {читаем каждый символ}
    write(F,symb); {записываем сиволы в файл}
  end;
close(F); {закрываем файл}
...
END.


Вот, что тут не так?

Автор: trminator 27.09.2003 11:46

если ты читаешь с экрана (а как я понял, дело так и обстоит), то while not EOF(input) окончится, когда ты введешь символ конца файла (^Z, вроде... Ctrl-Z, то бишь). Если хочешь читать до Enter'а, попробуй вместо EOF поставить EOLn (конец строки)

Автор: DEN_NAU 27.09.2003 12:07

Спасибо за совет. Я только что подумал и просто сделал по другому (проще) через repeat (пока, например, я не допишу в конце слово end).
Но вот дальше по условию задачи - перевернуть все символы слов?
Я так понял, что нужно загонять слова в массив?
Кстати, ^Z - недействовал ...

Автор: APAL 29.09.2003 14:05

Цитата
Но вот дальше по условию задачи - перевернуть все символы слов?
Я так понял, что нужно загонять слова в массив?
Кстати, ^Z - недействовал ...


Не надо массивов:

...
SS:='';
For i:=Length(St) downto 1 do SS:=SS+St[i];
...

St - исходное слово
SS - "перевернутое" слово