Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.02;
Скачать: CL | DM;

Вниз

TMemo   Найти похожие ветки 

 
RedArc ©   (2002-08-21 18:19) [0]

У меня такая вот проблема. Я считал в TMemo некоторый файл. Пользователь его изменил прямо тут же в Memo. Как мне тепрь восстановить сей файл обратно?
Записать его методами TMemo невозможно, так как файл был двоичным и я при чтении каждого байта конвертировал его в строку.

В общем, решением проблемы может стать такой вот цикл:

for i := 0 to Memo1.Lines.Count - 1 do
for j := 1 to Lines[i].Length do

То есть мне нужно получить тектс в зависимости от имеющегося целочисленного индекса строки. Как это сделать?


 
Андрей Прокофьев   (2002-08-21 18:34) [1]

Ничего не понял!
м.б.
S := Memo1.Lines.Text;
for i := 1 to Length(S) do
...


 
RedArc ©   (2002-08-21 19:12) [2]

Да нет. Этих самых Lines в Memo может быть сколь угодно много. Мне нужен доступ к тексту в любой строке. То есть типа

Memo1.Lines[i].Text

Как получить такой доступ?


 
Андрей Прокофьев   (2002-08-21 19:15) [3]

Memo1.Lines[n] - это и энная есть строка Memo

for i := 0 to Memo1.Lines.Count - 1 do
for j := 1 to Length(Memo1.Lines[i]) do



 
RedArc ©   (2002-08-21 19:31) [4]

Возникает ошибка компиляции...
Lines - есть указатель на список строк.
Мне нужен доступ к любой строке в Memo.


 
Anatoly Podgoretsky ©   (2002-08-21 19:32) [5]

Ничего не понятно, начти с того, как загонял в Memo и посмотри в книге/хелпе тип string


 
Андрей Прокофьев   (2002-08-21 19:39) [6]

Какая ошибка?!

procedure TForm1.Button1Click(Sender: TObject);
var i, j : Integer;
C : Char;
begin
for i := 0 to Memo1.Lines.Count - 1 do
for j := 1 to Length(Memo1.Lines[i]) do
C := Memo1.Lines[i][j];
end;




 
RedArc ©   (2002-08-21 19:55) [7]

Загонял так:

procedure TfBinaryEdit.LoadInMemo;
const
MaxSize = 22;
var
BSize, ASize : Integer;
P : PByte;
S, S1 : String;
i, j : integer;
B : Byte;
begin
Screen.Cursor := crHourGlass;
with SimproRegFile.CurrentS^.Fields.Current^.Field, FieldBin do begin
if FieldBin.FieldSize > MaxSize then ASize := MaxSize else ASize := FieldBin.FieldSize;
BSize := 0;
P := FieldBin.FieldPoint;
while BSize < FieldBin.FieldSize do begin
S := "";
for i := 1 to ASize do begin
B := P^;
S1 := Integer2Hex(B);
if Length (S1) = 1 then S1 := "0" + S1;
S := S + S1 + " ";
Inc (P);
end;
SetLength (S, Length(S) - 1);
mBinaryField.Lines.Add(S);
Inc (BSize, ASize);
if BSize + ASize > FieldBin.FieldSize then ASize := FieldBin.FieldSize - BSize;
end;
end;
Screen.Cursor := crDefault;
end;

Теперь нужно из Memo каждую строку конвертировать обратно в Binary. Вот тут и возникл задниц. Я никак не могу получить доступ к i-ой строке в TMemo. Всё время возникает ошибка компиляции. Очень надо...



 
Андрей Прокофьев   (2002-08-21 20:01) [8]

Да какая ошибка-то!!??
S := mbinaryField.Line[i];


 
Anatoly Podgoretsky ©   (2002-08-21 20:05) [9]

Тебе нужны функция Copy и StrToInt, посмотрел в сравке про тип string? Чувствую что нет, string по сути является массивом символов.
Так что вперед в книги по Паскалю на предмет базовых типов и массивов.


 
RedArc ©   (2002-08-21 20:11) [10]

Бог ты мой, какие могут быть отправки к стандартным типам?
Вопрос не в том, как работать со String, а в том, как получить доступ к переменной типа String по конкретному адресу в TMemo.
Конструкций типа Line[i] вызывает ошибку. Нет такого свойства в TMemo.

Можно получать хотя бы доступ к первой строке, а после этого её удалять. Но как это организовать?


 
Андрей Прокофьев   (2002-08-21 20:13) [11]

>> Конструкций типа Line[i] вызывает ошибку. Нет такого свойства в TMemo.
memo1. Lines[i]


 
RedArc ©   (2002-08-21 21:21) [12]

Спасибо всем! Кажется получилось!
Я таки нашёл способ получить ссылку на строку. Всё заработало.

Игорь



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

Текущий архив: 2002.09.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
1-3427
Netizen
2002-08-22 23:00
2002.09.02
Как найти подстроку в строке???


14-3583
data
2002-08-05 17:39
2002.09.02
Кто-нибудь смотрел конкурс


6-3536
lds
2002-06-21 13:29
2002.09.02
Как изменить размер шрифта в TWebBrouser ?


1-3510
Darkwin
2002-08-21 14:13
2002.09.02
помогите, не закрывается MDIChild - окно


7-3649
Stone
2002-06-20 22:50
2002.09.02
виртуальный desktop