![]() |
|
#1
|
|||
|
|||
![]() Доброго времени суток уважаемые
![]() Имеется: Некий большой текст со строками вида: Код:
999, Text1, 0, -2303.41, 2002.48, 9.2, 0, 0, 0, 1, -1 Код:
999, -2303.41, 2002.48, 9.2, 0, 0, 0 Может быть кто нибудь занимался созданием чего то подобного и может помочь исходником или набросает пример ![]() |
#2
|
|||
|
|||
![]() Ну, если не гнаться за производительностью, то можно так:
Код:
function ProcessStr(S : String) : String; var L : TStringList; begin L := TStringList.Create; Try // Бъем по запятым L.Text := StringReplace(S,',',#13#10,[rfReplaceAll]); While L.Count > 9 Do L.Delete(L.Count-1); // Удаляем все, после 9ой L.Delete(1); L.Delete(1); // Удаляем 2 блока // Собираем результат Result := ''; For I := 0 To L.Count-1 Do Begin If Result <> '' Then Result := Result + ', '; Result := Result + Trim(L[i]); End; Finally L.Free; End; end; |
#3
|
|||
|
|||
![]() Цитата:
Ха, как я понимаю, данное решение только для заданного выражения, именно: Код:
999, Text1, 0, -2303.41, 2002.48, 9.2, 0, 0, 0, 1, -1 но автор вопроса, говорил о неком "большом" тексте, примерного вида.., соответственно этот алгоритм, врятли ему поможет, так же, как я понимаю, автор неадекватно написал и само задание, суть алгоритма откидывания текста, остается загадкой) |
#4
|
||||
|
||||
![]() Код:
var t:TStringList; begin t:=TStringList.create; //создаём класс t.text:=stringReplace('999, Text1, 0, -2303.41, 2002.48, 9.2, 0, 0, 0, 1, -1',',',#13#10,[rfReplaceAll]);//заменяем все запятые на символы конца троки //теперь можно убедится что у вас строка разбита на элементы: showmessage(t[0]); showmessage(t[1]); showmessage(t[2]); showmessage(t[3]); ... //после работы надо уничтожить класс FreeAndNill(t); Последний раз редактировалось Admin, 09.02.2010 в 10:17. |