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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2012, 23:29   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Аватар, а что у тебя идет такое после then?
Ни чего необычного - посимвольное формирование строки, символы добавляются в начало
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.11.2012, 23:42   #12
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Мой вариант:
Код:
function Get1stWordsLetter(const aStr: string): string;
var
  s, rS: string;
  p: Integer;
begin
  s := Trim(aStr);
  rS := s[1];
  p := 1;
  while p > 0 do
  begin
    p := Pos(' ', s);
    if p > 0 then
    begin
      rs := rS + s[p + 1];
      Delete(s, 1, p);
    end;
  end;
  Result := rS;
end;
//Привет: Вася скушал манную кашу
//Ответ: Всмк

Последний раз редактировалось Человек_Борща; 08.11.2012 в 23:44.
Человек_Борща вне форума Ответить с цитированием
Старый 08.11.2012, 23:48   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а если не через консоль?
То еще лучше.
Все там работает, просто ты как-то не так применяешь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2012, 11:45   #14
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

sorry забыл..
Код:
   s:=NewText.Text;
   while Pos(' ',s) > 0 do
   begin
     Rezult.Text:=Rezult.Text + Copy(s,1,Pos(' ',s) - 1)[1];
     Delete(s,1,Pos(' ',s) + 1);
   end;
   Rezult.Text:=Rezult.Text + Copy(s,1,Length(s))[1];
так вроде
Кольша вне форума Ответить с цитированием
Старый 09.11.2012, 13:15   #15
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Код:
     Rezult.Text:=Rezult.Text + Copy(s,1,Pos(' ',s) - 1)[1];
<=>
Код:
Result.Text:=Result.text +copy(s, 1, 1);
Result.Text:=Result.text +s[1];
Аналогично copy(s, 1, length(s))[1]) <=> s[1]
с той же вероятностью AV при пустой строке (если последним в исходной строке будет пробел).
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 09.11.2012, 13:24   #16
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

artemavd,
Вложения
Тип файла: zip test.zip (1.3 Кб, 11 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 22.12.2012, 23:00   #17
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Serge_Bliznykov, нет, символов не будет.
У меня вопрос в другом сейчас: как сохранить пробелы между полученными первыми буквами? Возникла необходимость не убирать пробелы. Например, предложение "Скоро Новый Год!". Должно получиться "С Н г". Понимаю, что там что-то надо подправит, да вот не соображу, что именно. Прошу помощи?
На примере кода от raxp.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 22.12.2012, 23:27   #18
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если не важно сколько пробелов между словами, то так
Код:
for i:=0 to t.count-1 do
  temp:= temp + copy(t[i],1,1) + ' ';
edit2.Text:= Trim(temp);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.12.2012, 00:01   #19
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

править много и не надо:
Код:
function Get1stWordsLetter(const aStr: string): string;
var
  s, rS: string;
  p: Integer;
begin
  s := Trim(aStr);
  rS := s[1];
  p := 1;
  while p > 0 do
  begin
    p := Pos(' ', s);
    if p > 0 then
    begin
      rs := rS +' '+ s[p + 1];
      Delete(s, 1, p);
    end;
  end;
  Result := rS;
end;
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
счёт заданной буквы в предложении tanya61043 Помощь студентам 1 28.05.2012 11:37
как сделать перестановку слов в веденном предложении не повторяя одинаковые перестановки luybeznov Помощь студентам 3 22.05.2012 00:28
объясните как убрать в предложении из каждого слова все повторяющиеся буквы? st555 Общие вопросы C/C++ 0 29.12.2010 06:31
В заданной строке символов заменить все первые буквы слов на заглавные NV-salt Общие вопросы C/C++ 4 05.04.2009 18:41
Как из строки получить первые три символа experts91 Помощь студентам 2 07.04.2008 21:58