Помощь - Поиск - Пользователи - Календарь
Полная версия: Поменять строки из цифр в файле местами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
CristobaL
Господа, прошу оказать мне посильную помощь. Первое задание по файлам в ВУЗе.
Есть файл. Условно: "input.txt" , содержащий n-строк из трех цифр от 1 до 9.
Пример:

222
555
333

нужно отсортировать эти строки по возрастанию чисел в строках и записать результат в файл: "output.txt"
Я начинающий. Поиск использовал, но подобного не обнаружил. Сдавать уже надо. Помогите с кодом.

мисс_граффити
Цитата
Условно: "input.txt"

Файл - текстовый?
Содержатся только 111, 222,333...999? Никаких 125 или 589 нет?
CristobaL
Файл текстовый. Цифры только одинаковые.
мисс_граффити
как-то так пойдет?
var f: text;
num: array[1..9] of integer;
curr,i: integer;

begin
assign(f,'fail.txt');
{$I-}
reset(f);
{$I+}
if IOResult<>0 then
  begin
  writeln('error!');
  readln;
  exit;
  end;
for curr:=1 to 9 do
  num[curr]:=0;
while not eof(f) do
  begin
  readln(f,curr);
  inc(num[curr div 100]);
  end;
close(f);
rewrite(f);
for curr:=1 to 9 do
  for i:=1 to num[curr] do
    writeln(f,curr*100+curr*10+curr); {writeln(f,curr,curr,curr)}
close(f);
end.

(набирала здесь, не проверяла)
пишется в один и тот же файл.
если хочешь, чтобы в разные - перед записью сделай assign(f,'имя второго файла')
CristobaL
Создал в корне с файлом текстовый файл Fail.txt В нём 3 строчки 555 *энтер*111 *энтер* 222.
При запуске программа выдает error!
мисс_граффити
текстовый файл должен находиться в одной папке с программкой.
ну или исправь
assign(f,'fail.txt');
на assign(f,'полный путь к твоему файлу')
CristobaL
что проверяет команда IOResult и в каком случае какой флаг возвращается?
мисс_граффити
Успешность открытия файла
Если все прошло гладко - вернет 0
Иначе - код ошибки. Уж извини, наизусть их не помню
CristobaL
Прописал полный путь к файлу fail.txt ВСЕ заработало! Жаль что не получилось в корневом каталоге создать...

Огромное вам спасибо за столь скороспешную, и самое главное очень нужную помощь, мисс_граффити. С удовольствием повысил бы вашу репутацию, да незнаю пока как.
мисс_граффити
Пока - никак smile.gif
Сообщений мало.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.