![]() |
|
|
#1
|
|||
|
|||
|
Доброго дня.
подскажите можно ли как-то взять данные из мемо и поместить в массив записей? причем каждая строка - запись(данные напр через пробел) |
|
#2
|
||||
|
||||
|
а для чего в массив записей?
чем StringList не устраивает? и каков формат твоей записи? |
|
#3
|
||||
|
||||
|
Цитата:
как, по-твоему, будет выглядеть такая структура? |
|
#4
|
|||
|
|||
|
вообщем я изучаю паскаль(делфи) и для примера делаю телефонный справочник..
хочу чтоб сами данные справочника были в файле.. а програмка будет смотреть редактировать искать и сохранять.. вот.. хотел данные в массив записей определять чтоб с ними работать.. а что это за StringList??? объясните плз) |
|
#5
|
|||
|
|||
|
ну я хотел чтоб програмка как-то различала пробелы))
напр r=record name: string nomer: integer mass:array of r бла бла.. такая строка макс 123 записывал бы как mass.name = макс и mass.nomer = 123..... )) |
|
#6
|
|||
|
|||
|
непонятно написал)
напр если бы я ввел строку макс 123 я бы хотел чтоб она считалась как: в нэйм - макс а в намбер - 123 можно это как-то реализовать? |
|
#7
|
||||
|
||||
|
Цитата:
StringList - это список строк. дальше Цитата:
если так объявишь, то не сможешь сохранить в файл, поскольку тип string - это указатель на динамическую область памяти, содержащую строку нужно так: name: string[255] или name: string[100] или name: shortstring вобщем, нужно изучать базис |
|
#8
|
|||
|
|||
|
да мне не синтаксис нужен.
мне принцип нужен направление) можно это сделать как я задумал? или использовать StringList& какие преимущества? |
|
#9
|
||||
|
||||
|
Код:
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
|
|||
|
|||
|
че то круто больно тут))
можешь объяснить плз?) я тоже сделал)) вот так вот) Код:
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
|
|||
|
|||
|
щас еще сделаю чтоб размер массива динамически создавался...
но вообще я доволен) |
|
#12
|
||||
|
||||
|
Вообще такое можно сделать через двунаправленный список:
Код:
type
TJopa = record
Data: string;
Left,
Right: pointer;
end;А вообще, чем тебе стринг лист не нравится? Не по феншую? |
|
#13
|
|||
|
|||
|
помогите считать из файла в массив записей...(
неполучается.. |
|
#14
|
||||
|
||||
|
Цитата:
|
|
#15
|
|||
|
|||
|
)))
спасибо,сделаю выводы) |