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

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

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

Автор: Николай 10.11.2006 5:20

Доброго всем времени суток. У меня есть вопросик я тут програмку одну делаю не подскажите ли что в ней на данный момент не сходится. Пишет (Файл, не открыт для входа). В общем я хотел упростить себе задачу загружая текты из файла, ато уж слишком много набирать. Вот код. Зарание всем благодарен.

Код

var
a:string;b:string; F1:TEXT;
begin
a:=('типа лекции');
assign(f1,'c:\7_9.txt');
reset(f1);
close(f1);
readln(f1);
writeln(f1);
writeln(a);
writeln('Для завершения работы приложения нажмите Enter');
readln;
end.

Программка по идее простинькая но чет по лекциям у меня не прет.

Автор: Гость 10.11.2006 5:22

Пожалуйста извениете за"Фыйл"

Автор: Bokul 10.11.2006 5:33

 
var
a:string;b:string; F1:TEXT;
begin
a:=('типа лекции');
assign(f1,'c:\7_9.txt');
reset(f1);

// для чего закрывать файл перед тем, когда ты еще не прочитала инфу?
// Убери эту строчку.
close(f1);

// если ты хочешь прочитать что-то файла, а не просто пропустить строку,
// надо куда-то ее переписывать
readln(f1); // readln(f1,a); a-тип строки

// тоже самое, ты же хочешь что-то записать в файл? Если да, то что?
writeln(f1); // writeln(f1,b) b-текст, для записи в файл,b-тип строки

writeln(a);
writeln('Для завершения работы приложения нажмите Enter');
close(f1); // а здесь уже наоборот надо закрыть, т.е. добавь эту строку
readln;
end.


Цитата
Пожалуйста извениете за"Фыйл"

Ты можешь выправить заголовок. Там снизу твоего сообщения есть кнопочка "изменить", жмешь на нее, а потом
выбираешь "полное редактирование". Теперь ты можешь полностью редактировать твой пост, в том числе и заголовок.

М
Для этого автору надо как минимум зарегистрироваться smile.gif
volvo


Автор: Алена 10.11.2006 5:39

Только вот

readln(f1);
writeln(f1);
к одному и тому же файлу применять нельзя. Текстовый файл может быть открыт или для чтения, или для записи (добавления)...

Автор: Bokul 10.11.2006 5:53

Цитата
к одному и тому же файлу применять нельзя.

Можно, только надо открыть его правильно:
reset - для чтения
append - для записи

Автор: Алена 10.11.2006 17:24

Ты не понял, имелось в виду, что если текстовый файл будет открыт для чтения, то записать в него без переоткрытия не удастся, будет ошибка... А в исходной программе нет переоткрытия между readln(f) и writeln(f)

Автор: hiv 10.11.2006 20:42

Цитата(Bokul @ 10.11.2006 1:53) *

Можно, только надо открыть его правильно:
reset - для чтения
append - для записи

Немного уточню:
reset - для чтения
rewrite - для записи (стирает в файле все, что было до момента начала записи)
append - для чтения и записи (при открытии курсор находится в конце файла)
Дословно append - добавлять; прибавлять; прилагать что-л.

Автор: klem4 10.11.2006 20:44

Господа и дамы, http://forum.pascal.net.ru/index.php?showtopic=3584 !low.gif

Вот куда надо было напривать автора, да и сейчас еще не поздно, загляни туда, автор и жизеь станет немного яснее yes2.gif

Автор: Алена 10.11.2006 20:46

Цитата
append - для чтения и записи
Пример ЧТЕНИЯ из файла, открытого через Append можно привести?

Автор: hiv 10.11.2006 21:08

Приношу свои извинения
append(f); - работает только с текстовыми файлами var f:text;
seek(f,0); - НЕ работает с текстовыми файлами.
СМ. FAQ - там все есть smile.gif

Автор: Гость 10.11.2006 21:56

Всем большёе спасибо. Щас зарегистрируюсь

Автор: N/V/K 10.11.2006 23:06

var
a:string;b:string; F1:text;
begin
a:=('типа лекции');
assign(f1,'c:\7_9.txt');
reset(f1);
readln(f1,b);
writeln(f1);
writeln('Нажмите Enter для завершения приложения');
close(f1);
readln;
end.

Ну я не знаю даже что сказать "Файл не открыт для вывода" что может быть не так подскажите.

Автор: volvo 11.11.2006 0:02

Цитата
что может быть не так подскажите.
Тебе же сказали, что из файла, открытого через Reset можно только ЧИТАТЬ, выводить в него данные не получится!

Автор: N/V/K 11.11.2006 2:08

Да мне не надо вводить данные мне надо вывести их на экран, а я такой любитель не грамотный не могу этого сделать. unsure.gif

Автор: klem4 11.11.2006 2:10

reset(f1);
readln(f1,b);
writeln(b); < ---- выводить то надо то что из файла прочитал

Автор: N/V/K 11.11.2006 2:18

Спасибо большёе, мне теперь осталось решить проблемы с кодировкой *.txt файла.

Может быть я задам дурацкий вопрос, но что надо сделать чтоб тыводился весь текст примерно 1200 строк вместо одной первой. Подскажите пожалйуста.

Автор: klem4 11.11.2006 2:22

Приведи полностью и точно свое задание.

А то чувствуется обсуждение этой пятикопеечной программы может растянуться еще постов на 20.

Автор: N/V/K 11.11.2006 2:33

Извени. smile.gif Разработать обучающюю программу по изучениютемы "базы данных. Язык запросов SQL". Программа должна иметь встроенную проверку знаний и навыков(тест).

М
Очень сожержатнльно, пойди туда не знаю куда, купи то не знаю что и пластиковые стаканчики не забудь. Удачи. А начиналось все с чтения строки из файла ...



Ну хоть подскажи, как выводить крупные текстовые файлы на экран.

Автор: klem4 11.11.2006 2:43

Цитата
Ну хоть подскажи, как выводить крупные текстовые файлы на экран.


На сколько крупные ? 1200 строк ?

Так же как и не крупные. Читаешь последовательно строки из файла и выводишь их. Другое дело если длина строк в файле может превышать 255 символов, тогда выход либо переход на 32 бита (Delphi например), либо почитай http://forum.pascal.net.ru/index.php?showtopic=2361 про PChar.

Но что-то мне подсказывает что ты еще не разобрался как вообще в Паскале работать с файлами.

Ссылку на FAQ я давал выше.

Автор: N/V/K 11.11.2006 2:47

Спасибо!!!

Автор: N/V/K 11.11.2006 15:15

Прикольно, спасибо тебе Klem4 за инфу, с уважением N/V/K