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

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

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

> Задача про два файла
RAPON
сообщение 5.04.2009 11:48
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
Айра
сообщение 6.04.2009 0:08
Сообщение #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

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


Гость






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


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

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

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


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

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


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


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


Профи
****

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

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


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


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

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

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


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


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


Профи
****

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

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


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

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

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

 



- Текстовая версия 18.07.2025 14:00
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"