Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.01.2011, 00:38
kokj007 kokj007 вне форума
Прохожий
 
Регистрация: 18.01.2011
Сообщения: 12
Репутация: 10
Восклицание TstringList-смещение на 5 символов

Текстовый файл грузится в stringList. В загруженном тексте есть где-то символы $40, нужно найти эти символы, а затем сдвинуться влево на 5 символов от найденных $40 и переписать сверху старые символы на новые два (на число 15)
Например:аааааааааа$40аааааааа, результат: ааааа15ааа$40аааааааа.

Спасибо большое за работающие ответы!!!
Ответить с цитированием
  #2  
Старый 30.01.2011, 01:30
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от kokj007
Текстовый файл грузится в stringList. В загруженном тексте есть где-то символы $40, нужно найти эти символы, а затем сдвинуться влево на 5 символов от найденных $40 и переписать сверху старые символы на новые два (на число 15)
Например:аааааааааа$40аааааааа, результат: ааааа15ааа$40аааааааа.

Спасибо большое за работающие ответы!!!
Ну так в чем беда то?

1. находишь длину строки.
2. находишь позицию символа $40.
3. склеиваешь заново строку. с учетом -5 символов.
Ответить с цитированием
  #3  
Старый 30.01.2011, 01:33
kokj007 kokj007 вне форума
Прохожий
 
Регистрация: 18.01.2011
Сообщения: 12
Репутация: 10
По умолчанию

логику я понял, а какие функции использовать чтобы это реализовать?
Ответить с цитированием
  #4  
Старый 30.01.2011, 01:37
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от kokj007
логику я понял, а какие функции использовать чтобы это реализовать?

2. pos
3. copy
1. length

Последний раз редактировалось Konrad, 30.01.2011 в 01:47.
Ответить с цитированием
  #5  
Старый 30.01.2011, 01:49
kokj007 kokj007 вне форума
Прохожий
 
Регистрация: 18.01.2011
Сообщения: 12
Репутация: 10
По умолчанию

а зачем мне длину строки определять, мне типа такого надо:
Код:
i := Pos('$40',s);
  i := i -5;
  s[i] := '1';
  s[i+1] := '5';

правильно?? Или что-то лучше есть?
Ответить с цитированием
  #6  
Старый 30.01.2011, 02:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, в общем правильно. Только эф-нее будет как-то так

Код:
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;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:23.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025