Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

Как прочитать слово из середины предложения?   Найти похожие ветки 

 
В л а д и м и р ©   (2004-03-10 18:23) [0]

Необходимо "достать" дату из следующего предложения: "На начало 01.03.2004 года". Заранее спасибо за помощь.


 
TUser ©   (2004-03-10 18:26) [1]

рег. выражениями или "ручками" - поискать последовательность чсимволов, которая является датой.


 
Brahman ©   (2004-03-10 18:29) [2]

Подумать, как может быть представлена дата в строке
01/03/04
01.03.2004
1 марта 2004
отсюда и исходить


 
В л а д и м и р ©   (2004-03-10 19:12) [3]

Допустим, что представлена как 01.03.2004. И как ее вытащить?


 
Fay ©   (2004-03-10 19:17) [4]

Copy()


 
TUser ©   (2004-03-10 19:25) [5]

поставь RegExpr и используй [1]


 
Александр1 ©   (2004-03-10 19:26) [6]

Как из строки считывать слова, разделенные запятой????
Здесь приведены два алгоритма. Первый удобен, если входные данные - переменная, которую можно менять и она больше не понадобится. Второй вариант не изменяет входных данных.

procedure TForm1.Button1Click(Sender: TObject);
var
 s: string;
 p: integer;
begin
 s := "саша,маша,оля";
 repeat
   p := pos(",", s);
   if p <= 0 then p := Length(s) + 1;
   ListBox1.Items.Add(copy(s, 1, p - 1));
   delete(s, 1, p);
 until s = "";
end;

procedure TForm1.Button2Click(Sender: TObject);
const
 s = "саша,маша,оля";
var
 i: integer;
 buf: string;
begin
 buf := "";
 for i := 1 to Length(s) do
   if s[i] = "," then begin
     ListBox1.Items.Add(buf);
     buf := "";
   end else buf := buf + s[i];
 ListBox1.Items.Add(buf);
end;

А теперь напряги мозги и подумай, как это можно использовать!!!!!!!!!!!


 
wisekaa ©   (2004-03-10 19:33) [7]

function FindDateInStr(str: string): string;
var
s, sDate: string;
begin
result:="";
// str:="На начало 01.03.2004 года";
s:=str;
while pos(" ",s) > 0 do begin
 sDate:="";
 sDate:=Copy(s,1,pos(" ", s)-1);
 try
  StrToDate(sDate);
  result:=sDate;
  Break;
 except end;
 Delete(s,1,pos(" ", s));
end;
end;


 
Никто ©   (2004-03-10 19:40) [8]

function GetDate(Str:String):String;
var s:String;
begin
   s:=Copy(str,pos(".",str)-2,10);
   try
       StrToDate(S);
   except
   on EConvertError do
       begin
        if pos(".",str)<>0 then
        begin
            s:=Copy(str,pos(".",str)+1,length(str)-pos(".",str));
//             ShowMessage(s);
            s:=GetDate(s);
        end else s:="Fail";
       end;
   end;
result:=s;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:=GetDate(Edit1.Text);
end;


 
Никто ©   (2004-03-10 19:50) [9]

ps и не забудь про DateSeparator -)


 
В л а д и м и р ©   (2004-03-10 20:59) [10]

Всем огромное спасибо за помощь, щас попробуем все это использовать на практике..


 
evvcom   (2004-03-11 08:50) [11]


> wisekaa ©   (10.03.04 19:33) [7]
> function FindDateInStr(str: string): string;
> var
> s, sDate: string;
> begin
> result:="";
> // str:="На начало 01.03.2004 года";
> s:=str;


А переменная s зачем? Если значение str больше нигде не используется. Можно изменять и значение str, с исходной строкой ничего не случится!



Страницы: 1 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
8-1067867901
MAXHO
2003-11-03 16:58
2004.03.28
Звук, Звук и ещё раз звук......


1-1078398142
Rink
2004-03-04 14:02
2004.03.28
Где скачать примеры для компоненты Indy Clients для Delphi 7


1-1078830556
Рамиль
2004-03-09 14:09
2004.03.28
TStringList и юникод


1-1078949604
White
2004-03-10 23:13
2004.03.28
Преобразование типов! (Вопрос второй)


6-1074174956
Method
2004-01-15 16:55
2004.03.28
Chat