Задача с файлом |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача с файлом |
TBVlad |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Владимир Репутация: 0 |
Второй день сижу вот над чем...
Как заставить прогу считать содержимое файла (явно текстового, ибо разбит на строки разной длины) и каждый символ повторить 2 раза через пробел? Вот содержимое: 1 3 5 6 7 8 2 3 3 3 3 4 6 4 4 5 1 1 1 1 6 5 7 5 2 И что делать, если программа при исполнении выдаёт мне "файл не открыт для чтения", при том, что у меня указано, что он открыт? |
volvo |
Сообщение
#2
|
Гость |
Приведи свой неработающий код...
Насчет "как это сделать" - придется завести второй файл, и читая из первого, заносить число дважды во второй... Правильно будет делать это, используя функцию seekeoln (посмотри в поиске, я где-то приводил пример чтения с ее помощью из файла) |
TBVlad |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Владимир Репутация: 0 |
Вот код. В общем, он компилируется и работает. НО... он перезаписывает данные во второй файл (увы, я не понимаю пока, как сделать так, чтобы он перезаписывал в старый), и не посимвольно, а дублируя группу символов (строку).
Если я ухожу от текстового типа и задаю в типе файла и в переменной элементов другие (integer, char), компилятор ругается и говорит, что файл не открыт... Program File1; |
klem4 |
Сообщение
#4
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Может быть тебе вот такой результат нужен :
uses crt; Цитата in 0 1 2 1 2 3 out : (будет и в файле in и в файле out) 0 0 1 1 2 2 1 1 2 2 3 3 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#5
|
Гость |
Цитата(TBVlad @ 1.02.2006 15:59) он перезаписывает данные во второй файл (увы, я не понимаю пока, как сделать так, чтобы он перезаписывал в старый) Никак... Текстовый файл не имеет Random-доступа, только последовательно, значит ты не можешь ЗАМЕНИТЬ старую информацию на новую... Когда второй файл будет полностью создан - удали первый и переименуй новый на старое имя... Program File1; |
TBVlad |
Сообщение
#6
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Владимир Репутация: 0 |
Спасибо огромное.
Оба варианта работают... быстродействие в данном случае мало страдает, да и не важно пока. Volvo, а последовательная замена элементов в текстовом файле тоже невозможна? Или возможна путём скачивания данных в массив и поэлементного приравнивания элементов файла к массиву? |
volvo |
Сообщение
#7
|
Гость |
Замена вообще возможна только через полное удаление старой информации (ReWrite), и занесение новой. Откуда ты будешь заносить новую информацию (из другого ли файла, из массива, или просто генерировать "на лету") - никакой разницы...
|
Текстовая версия | 8.05.2024 2:25 |