Вниз
Скачать: CL | DM;

Поченму не читает из фала типа TStrings   Найти похожие ветки 

← →
Nad89 ©   (2005-01-17 17:09) [0]

Для записи/чтения использую код...Теоретически в мемо после нажатия второй кнопы должно быть "Lazha", а практически - нифига. Че у меня не так?

type DataBase=array[0..100] of TStrings;
...
//---Создает файл типа DataBase...
procedure TForm1.Button1Click(Sender: TObject);
var db:DataBase; f:file of DataBase;
begin
db.Data[0]:=TStringList.Create;
db.Data[0].Add("Lazha");
AssignFile(f,"c:\sef.heh");
Rewrite(f);
Write(f,db);
CloseFile(f);

end;
//Читает етот файл....
procedure TForm1.Button2Click(Sender: TObject);
var db:DataBase; f:file of DataBase;
begin
db.Data[0]:=TStringList.Create;
AssignFile(f,"C:\sef.heh");
Reset(f);
Read(f,db);
Memo1.Lines.AddStrings(db.Data[0]);
CloseFile(f);
end;


← →
Amoeba ©   (2005-01-17 17:12) [1]

Бред полнейший!


← →
begin...end ©   (2005-01-17 18:03) [2]

> Nad89 ©   (17.01.05 17:09)

> Теоретически в мемо после нажатия второй кнопы должно быть
> "Lazha", а практически - нифига.

Вы заблуждаетесь. Она (лажа) как раз есть. Практически. И ещё до нажатия второй кнопы.

Вам что нужно-то? Прочитать файл в экземпляр TStrings? Для этого есть специальный метод - TStrings.LoadFromFile.

Пример:

var
 Strings: TStrings;
begin
 Strings := TStringList.Create;
 try
   Strings.LoadFromFile("c:\sef.heh")
 finally
   Strings.Free
 end
end.


← →
begin...end ©   (2005-01-17 18:12) [3]

> Nad89 ©   (17.01.05 17:09)

А если нужно загрузить содержимое файла в Memo - так тут ещё проще, поскольку у Memo уже есть поле типа TStrings. Так что нужно просто написать: Memo1.Lines.LoadFromFile("c:\sef.heh").

[2] и [3] относится к случаю, если файл - текстовый. Если же он типизированный или нетипизированный, то TStrings тут вообще ни при чём.


← →
PVOzerski ©   (2005-01-17 18:30) [4]

С длинными строками вообще нужно быть осторожными, так как у них нет фиксированной длины, а переменная - по сути, указатель. По сути указатель и любой класс - в том числе и TStrings. Так что там дело до запис строк в файл просто не дойдет. А tStrings - к тому же еще и имеет абстрактные методы, он не приспособлен ни для чего, кроме как быть базовым классом для других.


← →
raidan ©   (2005-01-17 18:49) [5]

Бред полнейший! (c)

>begin...end ©   (17.01.05 18:12) [3]
Именно так.
В memo можно хранить вообще весь список строк и не использовать никакие type database=array...


← →
Anatoly Podgoretsky ©   (2005-01-17 21:04) [6]

var db:DataBase; f:file of DataBase;
И ты утверждаешь, что это у тебя откомилировалось?


← →
sniknik ©   (2005-01-18 00:10) [7]

Anatoly Podgoretsky ©   (17.01.05 21:04) [6]
а чего нет? он же его предварительно обьявил (этот тип).

ну и что что оно означает совершенно другое? ;о))



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.022 c
3-1104160416
Sashok
2004-12-27 18:13
2005.01.30
Фильтрация


14-1104169299
DiamondShark
2004-12-27 20:41
2005.01.30
Нет слов.


3-1104156625
Saska
2004-12-27 17:10
2005.01.30
Вопрос по TADOConnection.LoginPrompt


1-1106120498
Lera
2005-01-19 10:41
2005.01.30
Переполнение памяти.


1-1106062238
menart
2005-01-18 18:30
2005.01.30
Летнее и зимнее время в системе




   Наверх