![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть file1 и file2.
Нужно информацию из file1 добавить в начало file2, затем в конце добавить string; Я так понимаю, что PHP код:
Помогите пожалуйста, убил сегодня пол дня на это. |
|
#2
|
|||
|
|||
|
Сначала читаем file2 во временный поток (нельзя ДОписать в начало файла). Потом все пишем в нужном порядке в нужный файл.
Код:
var
Tmp : TMemoryStream;
F1, F2 : TFileStream;
S : String;
begin
F2 := TFileStream.Create('path',fmOpenRead);
Tmp := TMemoryStream.Create;
Tmp.CopyFrom(F2,F2.Size);
Tmp.Seek(0,0);
F2.Free;
F1 := TFileStream.Create('path',fmOpenRead);
F2 :- TFileStream.Create('path',fmOpenWrite);
F2.CopyFrom(F1,F1.Size);
F2.CopyFrom(Tmp,Tmp.Size);
F2.WriteBuffer(S[1],Length(S));
F1.Free;
F2.Free;
Tmp.Free;
end; |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
dnwest (07.02.2012)
| ||
|
#3
|
|||
|
|||
|
Спасибо, то, что доктор прописал.
Единственная проблема, при добавлении string к файлу они становятся кракозяблами. F.WriteBuffer(PChar(string)^, Length(string)); - не помогает |
|
#4
|
|||
|
|||
|
Немного прояснилось.
При вставке стринг в файл, после каждого символа (байта) вставляется байт 00. Таким образом строка выглядит не '1234', а '1Ъ2Ъ3Ъ4Ъ'. Какой выход, может что-то с кодировкой? |
|
#5
|
|||
|
|||
|
Проблема волшебно решилась заменой типа переменной string на ansistring, разбираться не стал.
Всем спасибо! |
|
#6
|
|||
|
|||
|
Теперь кириллица неправильно сохраняется
![]() |
|
#7
|
|||
|
|||
|
смотрю, очень форум популярный.
|