![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Возникла проблема при сохранении текста в файл. В Memo2 есть текст (см. рис.) использую обычную команду сохранения текста в файл
Код:
Memo2.Lines.SaveToFile(SaveDialog1.FileName); ![]() Текст является случайным набором ASII символов 1-255 возможно требуется особый метод сохранения. Подскажите пожалуйста. Последний раз редактировалось Kaktuz, 23.11.2011 в 01:18. |
|
#2
|
||||
|
||||
|
В таком наборе, содержатся спец. символы #10 и #13, являющиеся разделителями строк. Попробуй загрузить в StringList, а затем присвоить к Memo как Text.
|
|
#3
|
|||
|
|||
|
Код:
procedure TForm1.Button5Click(Sender: TObject);
var
animals : TStringList;
begin
animals := TStringList.Create;
animals.Add('текст');
Memo2.Text:=(animals[0]);
end;Надо получается считывать данные напрямую с файла... |
|
#4
|
||||
|
||||
|
Примерно так, если не вру:
Код:
procedure TForm1.Button5Click(Sender: TObject); var animals : TStringList; begin animals := TStringList.Create; animals.LoadFromFile(OpenDialog1.FileName);; Memo2.Lines.Text := animals.text; end; |
|
#5
|
|||
|
|||
|
помогите мне с темой ниже
|
|
#6
|
|||
|
|||
|
Тоже самое что и при обычной загрузке...
![]() |
|
#7
|
|||
|
|||
|
Блокнот не понимает кодировку ASCII... Посмотри просмотрщиком тотала, если он не распознает кодировку, поставь вручную...
Еще полезная ф-я для мемо, чтоб она понимала ASCII: Код:
Memo1.Font.Handle := GetStockObject(OEM_FIXED_FONT); Код:
Memo1.Font.Handle := GetStockObject(ANSI_FIXED_FONT); Последний раз редактировалось Last Living Man, 23.11.2011 в 09:15. |
|
#8
|
|||
|
|||
|
Цитата:
Да и эти две команды как-то ни как не повлияли на результат. Если я правильно понял, нужно использовать одну из предложенных команд перед сохранением текста. Возможно есть способ прочитать текст с файла сразу в Edit типа String в одну строку, может прокатит. Последний раз редактировалось Kaktuz, 23.11.2011 в 14:42. |
|
#9
|
||||
|
||||
|
Честно говоря, я не понял цели этого мазохизма.
|
|
#10
|
|||
|
|||
|
вопрос в том какие версии винды и дельфи и какие региональные настройки стоят в винде.
|
|
#11
|
|||
|
|||
|
Цитата:
Нашел вот еще такой способ, но он некоторые символы не читает. Код:
var a:TextFile;
b:String;
begin
AssignFile(a,'C:\Text.txt');
{$I-}
Reset(a);
{$I+}
ReadLn(a,b);
Memo1.Text:=b;В целом ответ я знаю. Знаю как сделать, но не знаю как прописать... Нужно использовать HEX преобразователь. Читать файл как hex записывать данные в переменную (получится что-то вроде DF0DD0CBD3CC20D7CFD5...) после чего это все преобразовывается уже в нужные символы (Я□ФЛУМ□ ЧП...) Начало было тут... Последний раз редактировалось Kaktuz, 24.11.2011 в 01:25. |
|
#12
|
||||
|
||||
|
Используй Read, ReadLn читает строку, или BlockRead.
|
|
#13
|
||||
|
||||
|
ReadLn - это сокращение от ReadLine, читает строку.
А вот еще способ: Код:
var f:file;
s:string;
...
AssignFile(f,'C:\Text.txt');
Reset(f,1);
SetLength(s,FileSize(f));
BlockRead(f,pointer(s)^,FileSize(f));
CloseFile(f); Хотя может где-то и ошибся.Especially for masochists. |
|
#14
|
|||
|
|||
|
Цитата:
Да кстати! файл в ASCII надо сохранять через тип text, если ты его делаешь с нуля. Так проще, т.к. все "невидимые" символы сами проставляются... |