Да, как такие блоки начинаются я писал
Пример:
Code
test.txt
Begin_VolumeTrackMusic_PosLeft
479
End_VolumeTrackMusic_PosLeft
Begin_VolumeTrackMusic_PosTop
48
End_VolumeTrackMusic_PosTop
Если воспользоваться моей функцией и впервом параметре вписать test.txt, а во втором параметре вписать VolumeTrackMusic_PosLeft,
то функция вернут значение "479", а мне нужно что бы можно было указав имя блока заменить информацию в нем.
Добавлено (29.01.2012, 01:49)
---------------------------------------------
Я придумал алгоритм, просто я не туда глядел)
алгоритм еще не доработан, примерно такой:
Code
void WriteFile(String FileNamePath, String NameBlock, String ReplacementText)
{
String BeginBlock = "Begin_";
BeginBlock+= NameBlock;
HANDLE t = Form1->Handle;
TMemo *BuferFile = new TMemo(t);
// загружаем в мемо содержимое файла
BuferFile->Lines->LoadFromFile(FileNamePath);
// проверяем каждую строку
for(int i = 0; i < BuferFile->Lines->Count; i++)
{
// получаем строку
String bufer = BuferFile->Lines->Strings[i];
// если нашли
if(bufer.Pos(BeginBlock))
{
BuferFile->Lines->Delete(i + 1);
BuferFile->Lines->Insert(i + 1, ReplacementText);
BuferFile->Lines->SaveToFile(FileNamePath);
BuferFile->~TMemo();
break;
}
}
}
этот алгоритм находит начало блока, и следующую строку заменяет на ту которую мы хотим,
после сохраняет содержимое в файл, и уничтожаем мемо, чтобы память не тратил
этот алгоритм я делал только для своей задачи, мне нужно была замена одной строки, после начала блока
Думаю тему можно закрыть