IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача про два файла
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 47
Пол: Мужской

Репутация: -  0  +


Даны два файла целых чисел одинакового размера. Создать текстовый файл, содержащий эти числа, расположенные в два столбца шириной по 30 символов (в первом столбце содержатся числа из первого исходного файла, во втором - из второго фала). В начало и конец каждой строки текстового файла добавить разделитель "|" (код 124). Числа выравниваются по правому краю столбца.
Я сделал такую программу..
uses crt,dos;
var
f,t,sr:text;
k,sh,i,sl,chet:integer;
c:char;
l:string[63];
d:string[30];
s:string[30];
begin
assign(f.'c:/o.txt');
assign(t.'c:/m.txt');
assign(sr.'c:/sr.txt');
reset(t);
reset(f);
rewrite(sr);
while not eof(f) do
begin
readln(f,s);
readln(t,d);
l:=chr(124)+s+chr(32)+d+chr(124);
writeln(sr,l);
end;
close(f);
clse(sr);
close(t);
end.


Вопрос:последняя строка выравнивается не правильно,и не выравнивается по правому краю.как это сделать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


строки s и d у тебя изначально пустые, и когда ты их прибавляешь к l, то добавляется только их заполненная часть, а не отведенные 30 символов. К тому же, чтобы получилось выравнивание, в строке d число должно размещаться в ее конце, а не в начале..

Пока получилось вот так, но кажется, что можно как-то лучше..
while not eof(f) do
begin
readln(f,s);
readln(t,d);
s:=chr(124)+s;
d:=d+chr(124);
while length(s)<30 do insert(' ',s,2); //пока длина строки s меньше 30 вставляем в нее пробелы во вторую позицию
//то есть как бы отодвигаем число в конец строки
while length(d)<30 do insert(' ',d,1); //аналогично, только в первую позицию
writeln(sr,s,d); //записываем обе строки
end;

Правда при таком варианте надо надеяться, что число будет не больше 29 символов wink.gif

Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






RAPON, а вариант не делать вручную, а воспользоваться средствами, встроенными в язык, уже не котируется?
while not eof(f) do
begin
readln(f,s);
readln(t,d);
writeln(sr,'|', s:30, '|', d:30, '|');
end;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Прошу прощения за вторжение, но у меня ощущение, что слова:
Цитата(RAPON @ 5.04.2009 12:48) *
Даны два файла целых чисел одинакового размера
- нужно понимать буквально. То есть входные файлы должны быть file of integer.

А если все же считать входные файлы текстовыми, то зачем читать запись числа в чило, а потом слова переделывать в запись? Можно сразу считывать как строку)).


Добавлено через 7 мин.
Извиняюсь, второе замечание отменяется - как-то проглядел sad.gif.
Первое остается smile.gif.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Да, volvo, что-то я тоже про элементарные вещи забыла.. "мы не ищем легких путей, нам лень" ((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Айра @ 6.04.2009 7:33) *
"мы не ищем легких путей, нам лень"
Прошу прощения за оффтоп - откуда это выражение? Просто на удивление метко..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Из магазина, на балахоне было написано)) Мне еще там понравилось: "Нас невозможно сбить с пути, нам пофигу, куда идти" smile.gif
*и да простят и меня за оффтоп.. wink.gif

Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 19:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name