Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.08.2011, 17:06
bezzzare bezzzare вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 27
Репутация: 10
По умолчанию из Memo в record

Доброго дня.

подскажите можно ли как-то взять данные из мемо и поместить в массив записей?
причем каждая строка - запись(данные напр через пробел)
Ответить с цитированием
  #2  
Старый 19.08.2011, 17:11
Аватар для DenNik
DenNik DenNik вне форума
Прохожий
 
Регистрация: 25.07.2011
Адрес: Около 300000 км от Луны
Сообщения: 25
Версия Delphi: D7 Enterprise
Репутация: 10
По умолчанию

а для чего в массив записей?
чем StringList не устраивает?
и каков формат твоей записи?
Ответить с цитированием
  #3  
Старый 19.08.2011, 17:12
Аватар для DenNik
DenNik DenNik вне форума
Прохожий
 
Регистрация: 25.07.2011
Адрес: Около 300000 км от Луны
Сообщения: 25
Версия Delphi: D7 Enterprise
Репутация: 10
По умолчанию

Цитата:
Сообщение от bezzzare
причем каждая строка - запись(данные напр через пробел)

как, по-твоему, будет выглядеть такая структура?
Ответить с цитированием
  #4  
Старый 19.08.2011, 17:17
bezzzare bezzzare вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 27
Репутация: 10
По умолчанию

вообщем я изучаю паскаль(делфи) и для примера делаю телефонный справочник..

хочу чтоб сами данные справочника были в файле..
а програмка будет смотреть редактировать искать и сохранять..

вот..
хотел данные в массив записей определять чтоб с ними работать..

а что это за StringList???
объясните плз)
Ответить с цитированием
  #5  
Старый 19.08.2011, 17:20
bezzzare bezzzare вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 27
Репутация: 10
По умолчанию

ну я хотел чтоб програмка как-то различала пробелы))
напр
r=record
name: string
nomer: integer


mass:array of r
бла бла..

такая строка

макс 123 записывал бы как mass.name = макс и mass.nomer = 123.....

))
Ответить с цитированием
  #6  
Старый 19.08.2011, 17:22
bezzzare bezzzare вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 27
Репутация: 10
По умолчанию

непонятно написал)

напр если бы я ввел строку
макс 123

я бы хотел чтоб она считалась как:
в нэйм - макс а в намбер - 123


можно это как-то реализовать?
Ответить с цитированием
  #7  
Старый 19.08.2011, 17:26
Аватар для DenNik
DenNik DenNik вне форума
Прохожий
 
Регистрация: 25.07.2011
Адрес: Около 300000 км от Луны
Сообщения: 25
Версия Delphi: D7 Enterprise
Репутация: 10
По умолчанию

Цитата:
Сообщение от bezzzare
а что это за StringList???
объясните плз)
нуу! сначала нужно хотя бы основы языка Паскаль изучить
StringList - это список строк.

дальше

Цитата:
Код:
r=record
 name: string
 nomer: integer

если так объявишь, то не сможешь сохранить в файл, поскольку тип string - это указатель на динамическую область памяти, содержащую строку
нужно так: name: string[255] или name: string[100] или name: shortstring

вобщем, нужно изучать базис
Ответить с цитированием
  #8  
Старый 19.08.2011, 17:31
bezzzare bezzzare вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 27
Репутация: 10
По умолчанию

да мне не синтаксис нужен.

мне принцип нужен

направление)

можно это сделать как я задумал?
или использовать StringList&

какие преимущества?
Ответить с цитированием
  #9  
Старый 19.08.2011, 17:41
Аватар для DenNik
DenNik DenNik вне форума
Прохожий
 
Регистрация: 25.07.2011
Адрес: Около 300000 км от Луны
Сообщения: 25
Версия Delphi: D7 Enterprise
Репутация: 10
По умолчанию

Код:
type
  TPerson = packed record
    Name: string[30]; // максимальная длина строки - 30
    Phone: integer;   // только здесь лучше тоже строку использовать
  end;

var
  Form1: TForm1;
  f: file of TPerson;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Person: TPerson;
begin
  AssignFile(f,'c:\Persons.dat');
  Rewrite(f); // создать новый файл (перезаписать) или
  Reset(f);   // если уже есть файл на диске (добавить)
  with Person do
  begin
    Name:= 'Вася Пупкин';
    Phone:= 123456;
  end;
  Write(f,person);
  CloseFile(f);
end;

end.

здесь отсутствует много чего нужного (например, что делать чтобы добавить запись в конец файла), так что осторожно.
Ответить с цитированием
  #10  
Старый 19.08.2011, 17:49
bezzzare bezzzare вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 27
Репутация: 10
По умолчанию

че то круто больно тут))
можешь объяснить плз?)

я тоже сделал)) вот так вот)
Код:
procedure TForm1.open1Click(Sender: TObject);
var i:integer;
begin
   t:=TStringList.Create;
   with OpenDialog1, Memo1 do
      if Execute then
         memo1.Lines.LoadFromFile(FileName);

         for i:=1 to 5 do
         begin

         t.text := stringReplace(memo1.Lines[i-1], ' ', #13#10,[rfReplaceAll]);
         mass[i].nomer:=strtoint(t[0]);
         mass[i].name :=t[1];
         end;
end;
Админ: Пользуемя тегами, иначе последуют санкции!

Последний раз редактировалось Admin, 21.08.2011 в 20:55.
Ответить с цитированием
  #11  
Старый 19.08.2011, 17:51
bezzzare bezzzare вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 27
Репутация: 10
По умолчанию

щас еще сделаю чтоб размер массива динамически создавался...


но вообще я доволен)
Ответить с цитированием
  #12  
Старый 19.08.2011, 18:32
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Вообще такое можно сделать через двунаправленный список:
Код:
type
  TJopa = record
    Data: string;
    Left, 
    Right: pointer;
  end;

А вообще, чем тебе стринг лист не нравится? Не по феншую?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #13  
Старый 23.08.2011, 15:46
bezzzare bezzzare вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 27
Репутация: 10
По умолчанию

помогите считать из файла в массив записей...(
неполучается..
Ответить с цитированием
  #14  
Старый 23.08.2011, 21:12
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
да мне не синтаксис нужен.

мне принцип нужен
А вот как станешь слушать более опытных людей, и изучишь основы языка (что для чего), тогда и получаться начнёт быстрее.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #15  
Старый 24.08.2011, 13:04
bezzzare bezzzare вне форума
Прохожий
 
Регистрация: 05.08.2011
Сообщения: 27
Репутация: 10
По умолчанию

)))
спасибо,сделаю выводы)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:26.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025