Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
1-3514
Esu
2002-08-19 19:44
2002.09.02
Получение полного пути к программе


1-3438
Лохматый
2002-08-20 14:47
2002.09.02
Работа с захваченным файлом


1-3449
ЮРИЙ_К
2002-08-20 13:42
2002.09.02
Отловить фокус мышки на кнопке заголовка rxDBGrid


1-3357
Msje Serge
2002-08-21 18:30
2002.09.02
Компоненты для графического редактора для CAD-систем


1-3409
peter_login
2002-08-22 13:26
2002.09.02
Генерация скрипта VB





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский