Я написал функцию Delphi, которая загружает данные из файла .dat в список строк. Затем он декодирует список строк и присваивает значение строковой переменной. Содержимое строки использует символ «#» в качестве разделителя.
Как я могу затем взять содержимое этой строки, а затем присвоить его содержимое локальным переменным?
// Function loads data from a dat file and assigns to a String List.
function TfrmMain.LoadFromFile;
var
index, Count : integer;
profileFile, DecodedString : string;
begin
// Open a file and assign to a local variable.
OpenDialog1.Execute;
profileFile := OpenDialog1.FileName;
if profileFile = '' then
exit;
profileList := TStringList.Create;
profileList.LoadFromFile(profileFile);
for index := 0 to profileList.Count - 1 do
begin
Line := '';
Line := profileList[Index];
end;
end;
После декодирования var "Line" содержит что-то вроде этого:
пример:
Line '23#80#10#2#1#...255#'.
Не все значения между разделителями имеют одинаковую длину, и значение «Line» будет меняться каждый раз, когда вызывается функция LoadFromFile (например, иногда значение может иметь только одно число в следующих двух или трех и т. д., поэтому я не могу полагаться на Функция копирования для строк или массивов).
Я пытаюсь найти способ перебора содержимого «Линии», назначая его локальной переменной с именем «буфер», а затем, если он встречает «#», он затем присваивает значение буфера локальной переменной, повторно инициализирует буфер в ''; а затем переходит к следующему значению в «Строке», повторяя процесс для следующего параметра, каждый раз игнорируя «#».
Я думаю, что слишком долго возился с этой проблемой, и я не могу добиться какого-либо прогресса, и мне нужен перерыв. Если кто-то захочет взглянуть, я буду рад любым предложениям о том, как это может быть достигнуто.
Огромное спасибо
KD