Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Текст и графика

17K
01 июня 2006 года
CapitnBlack
4 / / 01.06.2006
Доброго Времени Суток!
У меня есть проблемка:
1) Есть типизированный файл
Type question = record
que:string;-это вопрос
vars:array[1..3] of string; варианты ответа
end;
...
var
f:file of question;
...
мне нужно считать из этого файла вопрос, варианты ответа и вывести этот текст в графическом режиме. Но как это сделать, если большая строка обрезается? Помогите плизз! И желательно сделать, чтобы она выводилась в определенном месте.
2) Написал процедуру для первого случая
в строке, где нужно сделать переносы, я ставлю символы #, она разбивается на подстроки и выводиться. Но вот проблема: Если строка до переноса больше строки после переноса, то вторая выводится с частью "мусора" первой строки. Что делать?
procedure WRTEXT( x,y,r:integer;str : string );
var
tmp:string;
i,j,k:byte;
begin
i:=0;j:=0;k:=0;
while i < length(str)+1 do
begin
inc(k);
while (str <> '#') and ( i < length(str)+1) do
begin
tmp[j]:=str;
inc(i);inc(j);
end;

OutTextXY(x,y + k*r,tmp);
j:=0;inc(i);tmp:='';
end;
end;
366
01 июня 2006 года
int
668 / / 30.03.2005
Чего-то у тебя while два раза повторяется.
А что, не выходит поделить строку на подстроки? Строка максимум 255 символов, так что тут уже задача по выводу упрощается.
Про какой мусор ты говоришь? Вроде не замечал никогда..
17K
02 июня 2006 года
CapitnBlack
4 / / 01.06.2006
Цитата:
Originally posted by int
Чего-то у тебя while два раза повторяется.
А что, не выходит поделить строку на подстроки? Строка максимум 255 символов, так что тут уже задача по выводу упрощается.
Про какой мусор ты говоришь? Вроде не замечал никогда..


1)While 2 раза чтобы он всю строку просканировал.
2)Если в строке 1 слово, а я разобью на 2 и выведу, получиться пустая строка, а это не есть хорошо..
3)Мусор появляеться в следствии несоответствия длин 2-х строк. если строка str1:='shooow', str2:='aux', то у меня 2-ая строка получиться auxoow.Но почему я и сам не знаю.

929
02 июня 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by CapitnBlack
1)While 2 раза чтобы он всю строку просканировал.
2)Если в строке 1 слово, а я разобью на 2 и выведу, получиться пустая строка, а это не есть хорошо..
3)Мусор появляеться в следствии несоответствия длин 2-х строк. если строка str1:='shooow', str2:='aux', то у меня 2-ая строка получиться auxoow.Но почему я и сам не знаю.


Возможно твои проблемы от того, что ты неправильно работаешь со строками в Паскале.
Там они представляют собой массив символов, у которого индексы начинаются с 1, а не с 0. Последний символ находится в позиции Length(str).

 
Код:
repeat
  i := Pos('#', str);
  if i > 0 then begin
    str1 := Copy(str, 1, i - 1);
    str := Copy(str, i + 1, Length(str) - i);
    ... { рисуй str1 }
  end else begin
    ... { рисуй str }
  end;
until i = 0;
17K
02 июня 2006 года
CapitnBlack
4 / / 01.06.2006
Благодарю всех за помощь!
366
05 июня 2006 года
int
668 / / 30.03.2005
Эх, а я только вот хотел прогу написать по этому делу =)) А то курсовик делать неохота. Ну раз уже всё разобрали, пойду другую отмазку от курсовика поищу
242
05 июня 2006 года
Оlga
2.2K / / 04.02.2006
[quote=int]Эх, а я только вот хотел прогу написать по этому делу =)) А то курсовик делать неохота. Ну раз уже всё разобрали, пойду другую отмазку от курсовика поищу[/quote]
если есть время, пожалуйста:
http://forum.codenet.ru/showthread.php?t=26483

а вообще от подобных высказывании, плиз, воздерживайся.
тема закрыта :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог