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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2012, 00:46   #11
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
v:=-1
case a of
Точка с запятой где?!

И прошу прощения, для того, чтоб применить case a of переменная "а" должна быть целочисленная, о чем я глупо забыл Так что, наверное, придется либо делать а целым, либо возвращать Вашу старую запись с кучей if..then. Приношу извинения.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 22.09.2012 в 00:51.
Sciv вне форума Ответить с цитированием
Старый 22.09.2012, 08:55   #12
Corpuscul
Пользователь
 
Регистрация: 21.09.2012
Сообщений: 35
По умолчанию

Все равно спасибо, вернуть все как было не составит большого труда . И вот еще хотелось бы узнать про получение в переменные a,b,c значений не используя поле мемо3. Я так понимаю, что в Tstringlist строки хранятся под каким-то индексом, соответственно можно ли их получить не используя переменные d,e,f? Если да, то хотелось бы посмотреть пример хотя бы на одной строчке, как записать правильно не знаю.
Код:
procedure SplitTextIntoWords(const str: string;
output: Tstringlist; minLength: integer=1{минимальная длина слова});
var
  positionStart, positionEnd: integer;
  wordToAdd: string;
begin
  Assert(Assigned(output));
  output.Clear;
  positionStart := 1;
  while positionStart <= Length(str) do
  begin
    while (positionStart <= Length(str)) and not IsCharAlphaNumeric(str[positionStart]) do
      Inc(positionStart);
    if positionStart <= Length(str) then
    begin
      positionEnd := positionStart + 1;
      while (positionEnd <= Length(str)) and (IsCharAlphaNumeric(str[positionEnd]) or (str[positionEnd]=',')) do
        Inc(positionEnd);
      wordToAdd := Copy(str, positionStart, positionEnd - positionStart);
      if (Length(wordToAdd) >= minLength) then
      begin
        // добавление слова в список
        output.Add(AnsiLowerCase(wordToAdd));
      end;
      positionStart := positionEnd + 1;
    end;
  end;
end;
procedure TForm1.btn1Click(Sender: TObject);
 var words: TStringList; d, e, f: string; a, b, c: Double;
begin
    words:= TStringList.Create;
  SplitTextIntoWords(edt1.Text,words);
   mmo3.Text:=words.Text;
  words.Free;
  d:= mmo3.Lines[0];
  e:= mmo3.Lines[1];
  f:= mmo3.Lines[2];
  a:= StrToFloat(d);
  b:= StrToFloat(e);
  c:= StrToFloat(f);
  tolshina(a);

  end;


end.
Corpuscul вне форума Ответить с цитированием
Старый 22.09.2012, 10:46   #13
Corpuscul
Пользователь
 
Регистрация: 21.09.2012
Сообщений: 35
По умолчанию

Вроде нашел как это сделать, надо попробовать
Corpuscul вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан текст. Слова в тексте отделены одним пробелом, в конце текста точка. Распечатать все слова текста, которые содержат..... Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 1 06.02.2012 23:36
Дан текст, в котором слова отделяются друг от друга пробелами, удалить из текста все повторно встречающиеся слова Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 1 16.12.2011 11:03
Разделение слова на отдельные символы,вычисление их количества tagantroy Паскаль, Turbo Pascal, PascalABC.NET 2 18.07.2011 00:39