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

Вниз

Помогите оптимизировать код.   Найти похожие ветки 

 
andruxa ©   (2003-08-20 14:35) [0]

Функция проверяет есть ли в строке буквы,
если нет то возвращает исходную строку,
если есть то пустую строку.

function CheckStr(str:string):string;
var i,j:integer;
k:boolean;
const
a:array[1..10] of char = ("0","1","2","3","4","5","6","7","8","9");
begin
if str<>"" then
begin
result:=str;
if str[1]="0" then result:="";
for i:=1 to length(str) do
begin
k:=false;
for j:=1 to 10 do
begin
if str[i]=a[j] then k:=true;
end;
if not k then begin result:=""; break; end;
end;
end;
end;


 
HolACost! ©   (2003-08-20 14:39) [1]

Можно через множества!


 
Vlad ©   (2003-08-20 14:41) [2]

function CheckStr(str:string):string;
begin
Result:="";
if UPPERCASE(Str)<>LOWERCASE(Str) then Result=Str;
end;


 
andruxa ©   (2003-08-20 14:42) [3]

как это. какие функции. названия хоть . я сам в хелпах погляжу.
просто незнаю за что цепляться.


 
Vlad ©   (2003-08-20 14:42) [4]

Пардон, должно быть
if UPPERCASE(Str)= LOWERCASE(Str) then Result=Str;


 
REP ©   (2003-08-20 14:44) [5]

Begin
Result:=Str;
For i:=0 To Length(Str) do begin
If (Str[i]<#48) or (Str[i]>#57) Then begin
Result:="";
Break;
end;
end;
end;


 
Skier ©   (2003-08-20 14:49) [6]

function CheckStr(const ASourceStr:string) : string;
var
ii : Integer;
ALetterWasNotFound : Boolean;
begin
Result := EmptyStr;
ALetterWasFound := True;
for ii := 1 to Length(ASourceStr) do begin
if ASourceStr[ii] in ["А".."Z", "a".."z"] then begin
ALetterWasNotFound := False;
Break;
end; //if
end; //for
if ALetterWasNotFound then Result := ASourceStr;
end;

Условие для in поправить если требуется...


 
REP ©   (2003-08-20 14:49) [7]

Vlad © (20.08.03 14:42) [4]
Тогда уж AnsiUpperCase

Но при этом не проверяются всякие точки, двоеточия и пр. я понял нужно проверить челое число или нет?


 
Крот ©   (2003-08-20 14:51) [8]

IsCharAlpha, IsCharAlphaNumeric


 
REP ©   (2003-08-20 14:52) [9]

Если так то может:
Try
Result:=IntToStr(StrToInt(Str));
Except
Result:="";
end;


 
andruxa ©   (2003-08-20 14:53) [10]

Я несколько не так объяснил. мне нужно чтобы строка проверялась на цифры. чтобы цифры оставались если нет букв.


 
Skier ©   (2003-08-20 14:55) [11]

>andruxa © (20.08.03 14:53) [10]
Крут ! Ты своё условие внимательно читал ?!


 
Vlad ©   (2003-08-20 14:57) [12]

Сорри, не внимательно код прочитал.
Тогда действительно, проще - REP © (20.08.03 14:52) [9]



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

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

Наверх




Память: 0.49 MB
Время: 0.023 c
14-10956
VEG
2003-08-13 17:51
2003.09.04
Дообновлял свою BIOS...


14-10935
Skier
2003-08-15 08:53
2003.09.04
Энергетический коллапс в Штатах и Канаде


14-10939
Skalp
2003-08-16 18:26
2003.09.04
Autorun у CD привода.


7-11002
S.P.I.R.I.T.
2003-06-18 13:57
2003.09.04
Приложение которое не минизируется.


1-10745
Borgir
2003-08-25 08:36
2003.09.04
Прерывание функции