У меня есть текстовый файл, который имеет следующие данные:Разбор текста в Delphi
dgm P1
s0:->b1
*s1:b2->b1
S2:b2->b1,b3
dgm P2
s0:->b2
*s1:b1,b3->b2
Я хочу, чтобы разобрать этот файл, чтобы получить массив, элемент будет содержать каждый из DGM-х до следующего. То есть, первый элемент будет:
dgm P1
s0:->b1
*s1:b2->b1
S2:b2->b1,b3
Второй элемент будет:
dgm P2
s0:->b2
*s1:b1,b3->b2
и т.д. Пожалуйста, как я идти о том, что в Delphi. Я ищу лучший способ сделать это. Я попробовал загрузку из файла в TStringList.
begin
str:=TstringList.Create;
try
str.LoadFromFile('example.txt');
for i:=0 to str.Count -1 do
if str[i] ='dgm' then
//get the position, add it to an array;
//get the next position, till the end;
//use the positions to divide up the string
finally
str.Free;
Однако, это не работает, и я также думаю, что может быть лучше , чтобы справиться с этим, чем я кратко изложил.
что не работает значит? вы должны взять время для прочитайте [help] и [mcve]. –
': =' это назначение. Используйте '=' для сравнения. Возможно, вам лучше прочитать первые 3 символа rs сравнения с 'dgm'. Как насчет чувствительности к регистру? Пробелы? Каковы правила этого языка? Вы знаете? Вы знаете, как выполнять основные операции над строками? Похоже, вы этого не делаете. Если вы не знаете, тогда вы будете бороться. –
Он не работает, потому что вы проверяете строку «dmg», но файл имеет «dmg P1», «dmg P2» и т. Д. И вам нужно заменить: = с =, поскольку Дэвид указывает –