Вопрос № 63468: Здравствуйте, помогите считать числа с файла 1.txt в масив, при этом
неизвесно сколько их там. Числа записаны в строчку через пропуск.
Первое число оставить без изменений, а к всем остальным, если это не 1 добабивить 1.
Если же число 1 т...
Вопрос № 63.468
Здравствуйте, помогите считать числа с файла 1.txt в масив, при этом
неизвесно сколько их там. Числа записаны в строчку через пропуск.
Первое число оставить без изменений, а к всем остальным, если это не 1 добабивить 1.
Если же число 1 то с ним делать ничего не надо. вывести в другой файл 2.txt суму полученых
цыфр. Пример№1
1.txt:
2 1 1 1 1
2.txt:
6
пример №2
1.txt:
5 2 3 6
2.txt
19
Отправлен: 20.11.2006, 21:45
Вопрос задал: Polonne (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Алтунин Василий Владимирович
Здравствуйте, Polonne!
Для работы с текстовыми файлами в Паскале существуют специальные функции:
Прежде всего, вам надо нужно объявить файловую переменную типа Text
var f:Text;
Далее мы должны привязать эту переменную к файлу
Assign(f, ‘c: extfile.txt’);
Теперь мы должны решить, что будем делать с файлом.
Если считывать из него данные, то используем Reset(f);
Если записывать в файл данные, то используем Rewrite(f);
Если до записывать в файл данные, то используем Append(f);
Кстати, после того как мы выполним все операции с файлом важно закрыть канал ввода-вывода с файлом Close(f);
Перед тем как считывать данные из файла мы должны объявить буфер для считываемых данных. Это может быть переменная типа String
var buf:String;
Например, нужно прочитать файл, для этого используем функцию ReadLn(f, buf)
После этого в buf мы получим первую строку из считываемого файла.
Оператор ReadLn позволяет считывать строки до тех пор, пока не будет достигнут конец файла.
Достигнут или нет, конец файла всегда можно проверить с помощью функции SeekEOF(f):Boolean;
Для записи строки в файл воспользуемся оператором WriteLn(f,buf) она запишет содержимое буфера в общем случае в конец файла.
Дальше вам, необходимо используя функции для работы со строками разбить на подстроки, это просто сделать, так как у вас разделителем является пробел. Далее строки нужно будет преобразовать в числа с помощью Val, проверить число на предмет равенства единице и записать результат в файл.
Для записи можно использовать функцию Write(f,buf)