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

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

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

 
 Ответить  Открыть новую тему 
> Прокрутка тектста..., Метод решения.....хотя не откажуь от куска кода ;-)
x-x-x-x
сообщение 4.10.2006 14:01
Сообщение #1


Гость






Т.З необходимо написать прогу которая текстовый файл выводит на экран, и позволяет его прокручивать вверх или вниз (т.к тект длинный на экран не помещается).
P.S. так же хочиться поместить текст в рамочку, со школы помню что можно както прорисовывать маленькие полосочки без юсыса graph... напомните пожалуйста
 К началу страницы 
+ Ответить 
volvo
сообщение 4.10.2006 14:15
Сообщение #2


Гость






Читай текст в массив строк (лучше - расположенный в динамической памяти), заводи переменную, показывающую, на сколько массив прокручен вверх (изначально, например, Scrolled = 0), и отображай столько строк, сколько помещается на экран, начиная с той, которая должна отображаться (т.е. со Scrolled + 1)...

Попробуй начать, если будут затруднения - говори, подскажем smile.gif

А рамочку чертить - это с использованием символов: #205#186#201#200#187#188
 К началу страницы 
+ Ответить 
x-x-x-x
сообщение 4.10.2006 14:56
Сообщение #3


Гость






я так и думал smile.gif
 К началу страницы 
+ Ответить 
x-x-x-x
сообщение 13.10.2006 11:25
Сообщение #4


Гость






не не пракатило - препод подонок сказал что криво. Говорит тект в массив это куйня. Я точно не понял но он что то говорил про то что можно как то обращатся к конкретным частям (символам) тектого файла..
Help me nea.gif
 К началу страницы 
+ Ответить 
volvo
сообщение 13.10.2006 11:45
Сообщение #5


Гость






Угу... И пороть хард-диск постоянными к нему обращениями (да еще и "посимвольно", как он выразился... А если размер текста измеряется в сотнях килобайт?)... Это по его мнению, просто верх совершенства, правда?

Кстати, что именно ты ему показывал? Рассказал общую идею?
 К началу страницы 
+ Ответить 
x-x-x-x
сообщение 13.10.2006 14:38
Сообщение #6


Гость






Нее Beta версию проги притащил там тока массив был статический на 500 string-off. Я просто не правельно выразился - он вроде как имел ввиду что мол к тектовый файл можно загружать в память ссереди там ну короче я сам толко мне понял
 К началу страницы 
+ Ответить 
x-x-x-x
сообщение 14.10.2006 18:20
Сообщение #7


Гость






up smile.gif
 К началу страницы 
+ Ответить 
volvo
сообщение 14.10.2006 18:38
Сообщение #8


Гость






Как вариант - без использования массивов:
uses crt;

procedure show_file(var f: text; var before: integer);
var
  i: integer;
  s: string;
begin
  reset(f);

  for i := 1 to before do readln(f, s);
  gotoxy(1, 1);

  if seekeof(f) and (before > 0) then dec(before)
  else
    while (wherey < 24) and (not seekeof(f)) do begin
      readln(f, s);
      write(s); clreol; writeln;
    end;


  for i := wherey to 24 do begin
    gotoxy(1, i); clreol;
  end;
end;

var
  ch: char;
  scrolled_up: integer;
  f: text;

begin
  assign(f, 'sc_me.txt');
  reset(f);

  scrolled_up := 0;

  while true do begin

    show_file(f, scrolled_up);
    ch := readkey;
    case ch of
      #0:
        case readkey of
          #72: if scrolled_up > 0 then dec(scrolled_up);
          #80: inc(scrolled_up);
        end;
      #27: break;
    end;

  end;

  close(f);
end.
 К началу страницы 
+ Ответить 
x-x-x-x
сообщение 23.10.2006 11:42
Сообщение #9


Гость






Куда нести пиво?


PS а как сделать всётаки построчную прокрутку а не поабзацную? Пробовал

Код


procedure show_file(var f: text; var before: integer);
var
  i: integer;
  s: string[80];                                                 {ОГРАНИЧЕЛ ДЛИННУ СТРОКИ}
begin
  reset(f);

  for i := 1 to before do read(f, s);                      {ИЗМЕНИЛ readln на read}
  gotoxy(1, 1);

  if seekeof(f) and (before > 0) then dec(before)
  else
    while (wherey < 24) and (not seekeof(f)) do begin
      readln(f, s);
      write(s); clreol; writeln;
    end;


  for i := wherey to 24 do begin
    gotoxy(1, i); clreol;
  end;
end;




 К началу страницы 
+ Ответить 
x-x-x-x
сообщение 23.10.2006 11:50
Сообщение #10


Гость






Пару обзащев нормально прокручиват но потом останавливается.
 К началу страницы 
+ Ответить 

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

 

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