Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2010, 02:21   #1
Brabus
Пользователь
 
Регистрация: 25.09.2009
Сообщений: 81
По умолчанию загрузка текста в мемо НЕ через диалог

такая вот проблема... мне нужно загрузить в мемо текст из файла, в котором 2 строчки. например
100
56 32 89 3 56 0 0 0 2 3 4 1 67,
но сделать это нужно не через диалог. подскажите пожалуйста как
Brabus вне форума Ответить с цитированием
Старый 30.05.2010, 06:52   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Memo.Strings.loadfromfile
Виталий Желтяков вне форума Ответить с цитированием
Старый 30.05.2010, 06:52   #3
Necro
Пользователь
 
Аватар для Necro
 
Регистрация: 27.02.2007
Сообщений: 22
По умолчанию

в смысле файл открыть не через диалог?
например так

Код:
f:text;
s:string;
begin
  assignfile(f,'file.txt');
  reset(f);
while not eof(f) do 
   begin
     readln(f,s);
    memo1.lines.add(s);
   end;
  
end;
вы это имели ввиду?
Necro вне форума Ответить с цитированием
Старый 30.05.2010, 10:23   #4
Brabus
Пользователь
 
Регистрация: 25.09.2009
Сообщений: 81
По умолчанию

Necro, да, именно так. Спасибо большое
Brabus вне форума Ответить с цитированием
Старый 30.05.2010, 10:36   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Brabus, а чем тебе help Желтякова не понравился? Все то же самое, но в одной строке... Кстати, если воспользуешься советом Necro, не забудь закрыть файл... И лучше использовать блок try .... finally... end. Да и мемо перед заполнением неплохо бы почистить, так, на всякий случай, а вдруг там было уже чего перед заполнением...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 30.05.2010 в 10:38.
Grag вне форума Ответить с цитированием
Старый 30.05.2010, 10:45   #6
Brabus
Пользователь
 
Регистрация: 25.09.2009
Сообщений: 81
По умолчанию

Grag, я не знаю что такое "help Желтякова" . а вот такой еще вопрос:
как строку, например
34 63 37 476 221 124 51 6 8 0 12 3
записать в одномерный массив?
Brabus вне форума Ответить с цитированием
Старый 30.05.2010, 10:50   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Help Желтякова - это то, что тебе подсказал Виталий Желтяков в посте №2
Делай парсинг строки, т.е. каждое число - это "слова" в строке, разделенные пробелом. Вот выделяй каждое такое слово, преобразуй его в число и помещай в массив...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 30.05.2010 в 10:52.
Grag вне форума Ответить с цитированием
Старый 30.05.2010, 10:53   #8
Brabus
Пользователь
 
Регистрация: 25.09.2009
Сообщений: 81
По умолчанию

всё дело в том, что препод мне сказал сделать всё по старинке, как в паскале. типа так всё быстрее работает. а насчет 2-ого моего вопроса не сможете ничего подсказать?
Brabus вне форума Ответить с цитированием
Старый 30.05.2010, 11:21   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
всё дело в том, что препод мне сказал сделать всё по старинке, как в паскале. типа так всё быстрее работает.
Передайте Вашему преподавателю что он ретроград и сильно заблуждается!
я лично проводил опыты.. метод "по старинке" крайне не быстр...
и уж особенной глупостью выглядит использование компонента TMemo и его метода Lines.Add(s)... это ведь в старом Паскале то же не было.. или тут ничего, можно?! а loadfromfile - ни-ни... это плохо?...
резюмируя. Подобным кодом Вы получаете многострочный/некрасивый и медленный вариант.

Цитата:
а насчет 2-ого моего вопроса не сможете ничего подсказать?
Код:
var
  s, sOne : string;
  i, j, k : integer;
  index : integer;
  a : array[1..150] of integer;
  aOne  : integer;
begin
  s := '34 63 37 476 221 124 51 6 8 0 12 3';

  index := 0; {начальный индекс элемента в массиве}

  while length(s)>0 do begin
    k := Pos(' ',s);
    if k>0 then 
        sOne := Copy(s,1,k)
    else 
        sOne := s;
    Delete(s,1, length(SOne));

    {удалим все пробелы из строки sOne}
    while (length(s)>0) and (Pos(' ',sOne)>0) do delete(sOne,Pos(' ',sOne),1);

    val(sOne, aOne, j);
    if j=0 then begin
      inc(Index);
      a[Index] := aOne;
    end;
  end;

  {вывод массива на экран}
  for i:=1 to Index do
    Write(a[i]:1,' ');
  WriteLn;
  Readln;

end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.05.2010, 11:32   #10
Brabus
Пользователь
 
Регистрация: 25.09.2009
Сообщений: 81
По умолчанию

Serge_Bliznykov, спасибо вам огромное всё работает
Brabus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка и разброс по мемо Afftar Работа с сетью в Delphi 1 12.05.2010 16:58
Загрузка рисунка из мемо!!! Vito89 Общие вопросы Delphi 5 10.06.2009 13:48
Загрузка текста в мемо рандомом Gracia Помощь студентам 2 11.11.2008 08:37
загрузка текста с http в мемо benjaminfran Работа с сетью в Delphi 3 05.03.2008 13:57
Цвет текста в Мемо через Handle rpy3uH Win Api 1 30.10.2006 20:05