Delphi vyseknutí části textu mezi dvěma slovy – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Delphi vyseknutí části textu mezi dvěma slovy – Delphi – Fórum – Programujte.comDelphi vyseknutí části textu mezi dvěma slovy – Delphi – Fórum – Programujte.com

 

cniry0
Newbie
13. 3. 2009   #1
-
0
-

Dobrý den, potřebuju z php do delphi přepsat tuto funkci:

function cutter($left,$right, $str)
{
$str = substr(stristr($str, $left), strlen($left));
$leftLen = strlen(stristr($str, $right));
$leftLen = $leftLen ? -($leftLen) : strlen($str);
$code = substr($str, 0, $leftLen);
return $code;
}

Funkce vysekne z řetězce část, ohraničenou dvěma slovy. Věděl by někdo jak na to?

Nahlásit jako SPAM
IP: 78.45.88.–
o-lox0
Super člen
14. 3. 2009   #2
-
0
-

function cutter($left,$right, $str)
{
$str = substr(stristr($str, $left), strlen($left));
$leftLen = strlen(stristr($str, $right));
$leftLen = $leftLen ? -($leftLen) : strlen($str);
$code = substr($str, 0, $leftLen);
return $code;
}
// to nize aspiruje na copy-paste
// projevil jsem jistou snahu podle originalu nezasahovat do puvodnich retezcu

// I. - s null retezci, bliz PHPcku (pokud mas multibyte retezce pouzivej pred vetsinou klic. slov Ansi):

Function cutter(_left,_right,_str:pchar):pchar;

var i,j:pchar;left,right,str1:pchar;
a,b:integer;
Begin
left:=stralloc(4000); //widestring to nepotrebuje
right:=stralloc(4000);
str1:=stralloc(4000);
strcopy(left,_left);
strcopy(right,_right);
strcopy(str1,_str);
// v delphi neznam nesenzitivni porov.
strupper(left);
strupper(right);
strupper(str1);
i:=strpos(str1,left);
a:=0;
If i=nil then i:=str1 else a:=strlen(left);
j:=strpos(i,right);
If j<>nil then b:=strlen(j) else b:=0;
strlcopy(str1,_str+(i+a-str1),strlen(i)-b-a);
result:=str1;
strdispose(left);
strdispose(right);
End;
// neplnohodnotna ukazka pro string, nekomu muze vyhovovat
Function cutter2(left,right,str1:string):string;

var i:integer;
Begin
// v delphi neznam nesenzitivni porov.
for i:=1 to length(left) do left[i]:=upcase(left[i]);
for i:=1 to length(right) do right[i]:=upcase(right[i]);
for i:=1 to length(str1) do str1[i]:=upcase(str1[i]);
i:=pos(left,str1);
If i>0 then
str1:=copy(str1,i+length(left),length(str1)-(i));
i:=pos(right,str1);
If i>0 then
str1:=copy(str1,1,i-1);
result:=str1;
End;

Nahlásit jako SPAM
IP: 85.71.152.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 20 hostů

Podobná vlákna

Rozdíl mezi dvěma příkazy — založil Montezo

C# primka mezi dvema body — založil Kryspin

Dny mezi dvema daty — založil kejta

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý