![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Текстовый файл грузится в stringList. В загруженном тексте есть где-то символы $40, нужно найти эти символы, а затем сдвинуться влево на 5 символов от найденных $40 и переписать сверху старые символы на новые два (на число 15)
Например:аааааааааа$40аааааааа, результат: ааааа15ааа$40аааааааа. Спасибо большое за работающие ответы!!! |
#2
|
||||
|
||||
![]() Цитата:
1. находишь длину строки. 2. находишь позицию символа $40. 3. склеиваешь заново строку. с учетом -5 символов. |
#3
|
|||
|
|||
![]() логику я понял, а какие функции использовать чтобы это реализовать?
|
#4
|
||||
|
||||
![]() Цитата:
2. pos 3. copy 1. length Последний раз редактировалось Konrad, 30.01.2011 в 01:47. |
#5
|
|||
|
|||
![]() а зачем мне длину строки определять, мне типа такого надо:
Код:
i := Pos('$40',s); i := i -5; s[i] := '1'; s[i+1] := '5'; правильно?? Или что-то лучше есть? |
#6
|
|||
|
|||
![]() Ну, в общем правильно. Только эф-нее будет как-то так
Код:
var S : String; I, J : Intger; begin For I := 0 To StringList.Count-1 Do Begin S := StringList[i]; For J := 1 To Length(S) Do If (S[J] = #40) And (J > 4) Then // Если поз-я <= 4 то -5 не получится Begin S[J-5] := '1'; S[J-4] := '5'; End; StringList[i] := S; End; end; |
#7
|
|||
|
|||
![]() Уважаемый lmikle, использую Ваш код, но он ничего не делает, сохраняется первоначальный вариант текста без замены:
Код:
var S : String; I, J : Integer; str:tstringlist; begin str:=tstringlist.Create; str.LoadFromFile('1.txt'); For I := 0 To Str.Count-1 Do Begin S := Str[i]; For J := 1 To Length(S) Do If (S[J] = #30) And (J > 4) Then // Если поз-я <= 4 то -5 не получится Begin S[J-5] := 'Z'; S[J-4] := 'Z'; End; Str[i] := S; End; str.SaveToFile('2.txt'); str.Free; end; |
#8
|
|||
|
|||
![]() хм...интересно, а что вы подразумеваете под поиском литеры (#30)???
если вы хотите чтобы данный пример работал по принципу как из заголовка темы, то и поиск делайте соответствующий... Код:
var S : String; I, J : Integer; str:tstringlist; begin str:=tstringlist.Create; str.LoadFromFile('1.txt'); For I := 0 To Str.Count-1 Do Begin S := Str[i]; For J := 1 To Length(S) Do If (S[J] ='$' ) and ((S[J+1] ='4' )) and ((S[J+2] ='0' )) And (J > 4) Then // Если поз-я <= 4 то -5 не получится Begin S[J-5] := '1'; S[J-4] := '5'; End; Str[i] := S; End; str.SaveToFile('2.txt'); str.Free; end; |
#9
|
|||
|
|||
![]() exactly!!!
|