Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2013, 12:25   #1
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию Работа со строками

Необходимо текст из Memo1 вида
Код:
Ѓ    0.04 N 
Ѓ   
  0.0
 4 N 
 Ѓ   
  0.04 N 
  

 Ѓ    0.0
 4 N 
  

 Ѓ   
  0.0
 4 N 
  

 Ѓ   
  0.04 N 
  

 Ѓ    0.0
 4 N 
  

Ѓ    0.04 N
преобразовать к виду
0.04
0.04
0.04
0.04 и т.д.
Aleksandr вне форума Ответить с цитированием
Старый 26.03.2013, 12:56   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

1. Выдернуть в одну строку из Memo.Text
2. Удалить все #13 и #10
3. Искать в строке 'Ѓ' и следущий 'N' после него
4. Взять текст между ними удалив левые и правые пробелы - нашли
5. Удалить по 'N' включительно
6. Перейти на 3
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.03.2013, 13:49   #3
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

У меня последний символ может быть не только N
Aleksandr вне форума Ответить с цитированием
Старый 26.03.2013, 14:29   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А в чем проблема? Искать значит N или другие и ориентироваться на тот, который ближе к Ѓ
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.03.2013, 14:50   #5
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Ну а если так? Грубо конечно, но это ведь просто идея
Код:
var
  i: Integer;
  s: string;
begin
  s := '';
  Memo1.Text := StringReplace(Memo1.text, #13, '',[rfReplaceAll]);
  Memo1.Text := StringReplace(Memo1.text, #10, '',[rfReplaceAll]);
  Memo1.Text := StringReplace(Memo1.text, ' ', '',[rfReplaceAll]);
  for i := 1 to Length(Memo1.Text) do
  begin
    if Memo1.Text[i] in ['0'..'9','.'] then s := s + Memo1.Text[i]
  else
      begin
       if Length(s) > 0 then Memo2.Lines.add(s);
        s := '';
      end;
  end;
Баламут вне форума Ответить с цитированием
Старый 26.03.2013, 18:05   #6
stalker1995s
Gamedeveloper
Форумчанин
 
Аватар для stalker1995s
 
Регистрация: 11.07.2012
Сообщений: 149
По умолчанию

При желании, можно и вовсе одним Delete(); Обойтись
stalker1995s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# Работа со строками Rikhard Общие вопросы C/C++ 1 08.12.2010 22:29
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
Работа со строками Pormonik Общие вопросы C/C++ 1 21.05.2010 20:45
Работа со строками СемаСемечкин Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 08.06.2009 09:57
РАБОТА СО СТРОКАМИ kluwa Общие вопросы C/C++ 7 20.12.2007 18:30