Страница 1 из 1
"работа с текстовыми файлами", Паскаль
Добавлено: 03 мар 2009, 19:00
maliyusha
Задача:
Дан текстовый файл f, содержащий целые числа от 1 до 100. Подготовить новый файл для печати этих чисел в две колонки. В левой колонке должны быть размещены числа от 1 до 50, в правой колонке − числа от 51 до 100. Выровнять числа по левому краю.
Пожалуйста, подскажите как можно осуществить решение задачи и как примерно будет выглядеть код, наверняка многим встречались решения подобных задач. Спасибо

Re: "работа с текстовыми файлами", Паскаль
Добавлено: 03 мар 2009, 22:18
Naeel Maqsudov

Задача настолько детерминированная, что хочется написать всю программу одной строкой
Код: Выделить всё
var i:byte; begin for i:=1 to 50 do writeln(i,#9,i+50); end.
Выравнивание по левому краю обеспечивает табуляция.
Re: "работа с текстовыми файлами", Паскаль
Добавлено: 04 мар 2009, 12:32
maliyusha
Забавно, впервые вижу программу в одну строку

Прогресс не стоит на месте ))
Re: "работа с текстовыми файлами", Паскаль
Добавлено: 04 мар 2009, 12:44
Хыиуду
Веселиться так веселиться! Задание звучит как "Подготовить новый файл для печати этих чисел в две колонки". Так что
Код: Выделить всё
var f: text; begin assign(f, 'c:\1.txt'); rewrite(f); close(f); writeln('Файл подготовлен, можете печатать'); end.
Re: "работа с текстовыми файлами", Паскаль
Добавлено: 04 мар 2009, 12:47
Naeel Maqsudov
Давайте задачу поставим иначе.
Дан файл, в котором некоторое количество коротких строк. Размер файла не ограничен (т.е. считывать его в память целиком нельзя). Сформировать новый файл, который содержит данные первого файла, но уже в 2 колоки. Колонки формируются в порядке "Сверху вниз, а потом слева направо".
(Т.е.
1
2
3
4
должно стать
1 3
2 4)
Ширину колонки определить автоматически по максимально длинному значению первой колонки + 5 пробелов. Вторую колонку пробелами до указанной ширины не дополнять.
Вот в такой формулировке это хотя бы решать интересно, притом она включает в себя и Вашу, т.е. ее решение является решением и Вашей задачи тоже.
Re: "работа с текстовыми файлами", Паскаль
Добавлено: 04 мар 2009, 13:41
Naeel Maqsudov
Хотя и так ничего интересного
Код: Выделить всё
var
F1a,F1b,F2:Text;
i,N,W:longint;
S,S2:String;
begin
assign(F1a,'100.txt');
assign(F1b,'100.txt');
N:=0;
reset(F1a);
while not eof(F1a) do begin
readln(F1a,S); inc(N);
end;
N:=(N+1) div 2;
reset(F1b);
W:=0;
for i:=1 to N do begin
readln(F1b,S);
if length(S)>W then W:=length(S);
end;
reset(F1a);
assign(F2,'100-2.txt');
rewrite(F2);
for i:=1 to N do begin
readln(F1a,S);
if not eof(F1b) then readln(F1b,S2) else S2:='';
writeln(F2,S,'':W+5-length(S),S2);
end;
close(F1a);
close(F1b);
close(F2);
end.
Re: "работа с текстовыми файлами", Паскаль
Добавлено: 04 мар 2009, 14:54
maliyusha
Почему ничего интересного? К примеру, я только учусь программировать на Паскале и для меня все в новинку,а всё новое- всегда интересное. И спасибо за помощь
