Люди, помогите кто чем может. Я лично ничего не понимаю. Вроде написал код верно, а происходит всякая фигня. Первый раз строки читпется, только с 0 в конце, а второй раз вместо записанной строки прсто читается 1. :dash1
| Код | AnsiString Text = "Thit text must be loaded to file"; //AnsiString Text = "Abs defgkfjsdghkjfhgkjfsgfbgfjg"; int Len = Text.Length(); int iTempLength = sizeof(int); TFileStream * FileStream = new TFileStream("fa.dat",fmCreate); FileStream->Write(&Len,iTempLength); FileStream->Write(&Text,Len); FileStream->Free();
|
считывания использую
| Код | AnsiString Text = ""; int Len = Text.Length(); int iTempLength = sizeof(int); TFileStream * FileStream = new TFileStream("fa.dat",fmOpenRead); //FileStream->Seek(0,soFromBeginning); FileStream->ReadBuffer(&Len,iTempLength); FileStream->ReadBuffer(&Text,Len); Edit1->Text = Text; FileStream->Free();
|
ечсть и второй вариант с использованием TMemoryStream.
| Код | AnsiString Text = ""; int Len = Text.Length(); int iTempLength = sizeof(int); TMemoryStream * MemStream = new TMemoryStream(); MemStream->LoadFromFile("fa.dat"); //MemStream->Seek(0,soFromBeginning); MemStream->Read(&Len,iTempLength); char * string = new char[Len]; MemStream->Read(&Text,Len); Edit1->Text = Text; MemStream->Free();
|
чтение аналогично первому варианту
| Код | AnsiString Text = "Thit text must be loaded to file"; int Len = Text.Length(); int iTempLength = sizeof(int); TMemoryStream * MemStream = new TMemoryStream(); MemStream->Seek(0,soFromBeginning); MemStream->Write(&Len,iTempLength); MemStream->Write(&Text,Len); MemStream->SaveToFile("fa.dat"); MemStream->Free();
|
Да, самое интересное. Прога прописана в автозагрузку, и там я использую стандартные ::CreateFile/ С ним все нормально, но при первой подгрузке, чтение из файла не происходит :( ниче не понял. Библиотеки что-ли не подгружаются...(относительно ::CreateFile). В общем, чспасите, утопаю!!!!!!!! |