Работа с файлами |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Работа с файлами |
FENIX |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: 0 |
Никогда не работал с файлами, и вот не могу решить следущую задачу (понимаю, что она легкая, но все-таки...)
Задача: в выходной файл поместить количество цифр каждого числа из исходного файла. Работаем мы с текстовыми файлами. Пример: для 12345 - 5, 846 - 3. Помогите, плиз |
volvo |
Сообщение
#2
|
Гость |
FENIX
Если входной файл содержит ТОЛЬКО числа - то просто читай их как строки... Код var fin, fout: text; s: string; begin assign(fin, 'input.txt'); {$i-}reset(fin);{$i+} assign(fout, 'output.txt'); {$i-}rewrite(fout);{$i+} while not seekeof(fin) do begin readln(fin, s); writeln(fout, length(s)); end; close(fout); close(fin) end. Пример входного файла (Input.txt): Цитата 123 1234 12345 123456 123 1234 23 33 3 9 |
FENIX |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: 0 |
volvo
Входной файл содержит только числа, но они идут в строку. Как быть? |
volvo |
Сообщение
#4
|
Гость |
FENIX
Тогда так: Код var fin: file of char; fout: text; ch: char; count: integer; begin assign(fin, 'input.txt'); {$i-}reset(fin);{$i+} assign(fout, 'output.txt'); {$i-}rewrite(fout);{$i+} count := 0; while not eof(fin) do begin read(fin, ch); if ch in ['0' .. '9'] then inc(count) else if count > 0 then begin writeln(fout, count); {если нужно результаты в строку: write(fout, count, ' ');} count := 0 end; end; close(fout); close(fin) end. |
FENIX |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: 0 |
Большое спасибо, все работает
|
Текстовая версия | 23.12.2024 19:52 |