![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() имеется массив Q:array of string; в ходе работы программы он заполняется.Затем сохраняю массив Q в файл-стрим FileStream.Write(Q,SizeOf(Q)), но при попытке чтения из файла(FileStream.Read(Q,Sizeof(Q));
он не читается из файла...Помогите кто может советом ![]() |
#2
|
||||
|
||||
![]() Вот так думаю нормально запишет.
Код:
procedure TForm1.Button1Click(Sender: TObject); Var Q: Array of String[32]; F: TFileStream; i, R: Integer; begin R:= 2; SetLength(Q, R); Q[0]:= '0000'; Q[1]:= '1111'; F:= TFileStream.Create('C:\1.txt',fmCreate); For i:= 0 To R - 1 Do F.Write(Q[i], SizeOf(Q[i])); F.Free; end; If end Then begin; |
#3
|
|||
|
|||
![]() Ага, а как ты читать-то будешь.
Да и не уверен, что оно так запишется. Надо писать в таком порядке: 1. Пришем кол-во элементов массива (Length). 2. Циклом по элементам: 2.1. Пишем длинну строки очередного элемента 2.2. Пишем саму строку. Чтение, соответсвенно, происходит аналогично. А вообще, если твои строки не содержат переводов строк, то лучше использовать TStringList. С ним работать гораздо удобнее. |
#4
|
||||
|
||||
![]() Попробовал записует и читает норм. Да только количество елементов массива нужно тоже сохранять. Хотя согласен с вышесказанным что
лучше использовать TStringList. Код:
procedure TForm1.Button2Click(Sender: TObject); Var Q: Array of String[32]; F: TFileStream; i, R: Integer; begin R:= 2; SetLength(Q, R); F:= TFileStream.Create('C:\1.txt',fmOpenRead); For i:= 0 To R - 1 Do begin F.Read(Q[i], SizeOf(Q[i])); ListBox1.Items.Add(Q[i]); end; F.Free; end; If end Then begin; |
#5
|
|||
|
|||
![]() Цитата:
|
#6
|
||||
|
||||
![]() Не знаю, у меня вышеприведенный код работает в разных программах,
(но не одновременно). Так пробовали? Код:
Var SL: TStringList; // Запись begin SL:= TStringList.Create; SL.Add('567fgytfyfuyup8y76'); SL.Add('df6f6fy6u'); SL.SaveToFile('C:\2.txt'); SL.Free; end; // Чтение begin SL:= TStringList.Create; SL.LoadFromFile('C:\2.txt'); N:= SL.Count; // к-во елементов S:= SL.Strings[i]; SL.Free; end; If end Then begin; |