Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выковыривание букв из текста... 
:(
    Опции темы
ZENDAN
Дата 12.9.2005, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 12.9.2005

Репутация: нет
Всего: нет



Ребят, здесь такая проблема… Беру первую букву из текста с помощью COPY, проверяю её по условиям, вставляю в другой текс…. Все работает!!! А вот вторую букву взять уже не могу!!! А по моей задумке из текста поочередно нужно взять все буквы и проверить их на соответствие некоторым условиям, а после напечатать обратно…. Вот, как их из текста поочередно выковырять? Подскажите пожалуйста…. Пробовал GOTO…. Прога просто виснет и всё! Как ее лучше закольцевать?

С уважением ZENDAN.

PM MAIL   Вверх
z-END
Дата 12.9.2005, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



Код

var 
 x:Integer;
MyText,NewMyText:String;
begin
NewMyText:=EmptyStr;
for x:=1 to length(MyText)
  do  NewMyText:=MyText[x]+NewMyText;
end;

так получишь текст в обратном порядке

Это сообщение отредактировал(а) z-END - 12.9.2005, 18:24


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Mayk
Дата 12.9.2005, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



А почему legth(txt)-1? В пасе же символы в строке идут начиная с первого?


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
z-END
Дата 12.9.2005, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



Mayk лопухнулсяsmile) привык уже с объектами работатьsmile


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Vet
Дата 15.9.2005, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



ZENDAN, а чем проблема пройти всю строку по символам?
Код

for i := 1 to Length(Str) do
 if Str[i] = 'чему-то' then
  ...

А если надо текст в обратном порядке получить, то используй ReverseString из StrUtils
PM MAIL   Вверх
Albinos_x
Дата 15.9.2005, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Vet

Код

for i := 1 to Length(Str) do    
 if Str[i] = 'чему-то' then    
  ...


по мойму текст этим не перевернёшь, а во вторых каждое условие дейтвует как крутой поворот для автомобиля и время выполнения кода увеличивается.


z-END дал ответ на вопрос, можно только ещё привести несколько вариаций:

Код

k:=length(MyText);
for x:=1 to    k  do  
    NewMyText:=NewMyText+MyText[k-x];    
end;

или (но более оптимальный, по сравнению с предыдущим вариантом)
Код

k:=length(MyText);
for x:=k downto    1  do  
    NewMyText:=NewMyText+MyText[x];    
end;


но это уже дело вкуса...

Это сообщение отредактировал(а) Albinos_x - 15.9.2005, 18:01


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
~FoX~
Дата 16.9.2005, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



Цитата(Albinos_x @ 15.9.2005, 18:59)
или (но более оптимальный, по сравнению с предыдущим вариантом)

Если не секрет, с чего этот вариант более оптимальный.....


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Rennigth
Дата 16.9.2005, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



даешь каламбур...
минус один минус... гыгыгы... жуткая экономия... smile


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Albinos_x
Дата 16.9.2005, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата
с чего этот вариант более оптимальный

Код

MyText[k-x]


в первом на одну операцию больше... smile

ЗЫ: smile ну люблю я всё оптимизировать smile


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Mayk
Дата 17.9.2005, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



Уж если мы заговорили об оптимизации, то по некоторым данным дельфи не очень быстро занимается конкатенацией(ссылку дал Void здесь)
Лучше сразу задать длину строки.
То есть примерно так
Код

     k:=length(oldText);
     setLength(newText,k);
     for i := 1 to k do
         newText[k-i+1] := oldText[i];

Вроде должно быть быстрее.

Это сообщение отредактировал(а) Mayk - 17.9.2005, 09:07


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Albinos_x
Дата 17.9.2005, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



...угу...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Vet
Дата 17.9.2005, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.2.2005

Репутация: нет
Всего: нет



To Albinos_x
Цитата
по мойму текст этим не перевернёшь, а во вторых каждое условие дейтвует как крутой поворот для автомобиля и время выполнения кода увеличивается

По-моему, про тему топика уже забыли:
Цитата
А по моей задумке из текста поочередно нужно взять все буквы и проверить их на соответствие некоторым условиям, а после напечатать обратно

Вот откуда взялось
Код

for i := 1 to Length(Str) do
 if Str[i] = 'чему-то' then
  ...

Также я автору посоветовал использовать ReverseString. Зачем изобретать велосипед?
PM MAIL   Вверх
Albinos_x
Дата 17.9.2005, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата
Вот откуда взялось


упс... просмотрел...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0586 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.