Important alert: (current site time 7/16/2013 5:09:42 AM EDT)
 

VB icon

Replace,InStr,Left,Right,LeftTrim,RightTrim,Reverse,Split,Replace,Mid Functions

Email
Submitted on: 7/21/2001 5:30:09 PM
By: telle  
Level: Intermediate
User Rating: By 15 Users
Compatibility: Delphi 5, Delphi 4, Pre Delphi 4
Views: 62356
(About the author)
 
     This is just like the name says, The Following Vb functions for Delphi all coded/translated by me: RightTrim LeftTrem InStr Mid Left Right Replace Split Reverse
 
Can't Copy and Paste this?
Click here for a copy-and-paste friendly version of this code!
!**************************************
! for :Replace,InStr,Left,Right,LeftTrim,RightTrim,Reverse,Split,Replace,Mid Functions
!**************************************
CopyRight 2001 By Me, Use in any manner you wish
code:
Can't Copy and Paste this?
Click here for a copy-and-paste friendly version of this code!
 
Terms of Agreement:   
By using this code, you agree to the following terms...   
  1. You may use this code in your own programs (and may compile it into a program and distribute it in compiled format for languages that allow it) freely and with no charge.
  2. You MAY NOT redistribute this code (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.   
  3. You may link to this code from another website, but ONLY if it is not wrapped in a frame. 
  4. You will abide by any additional copyright restrictions which the author may have placed in the code or code's description.
				
!**************************************
! Name: Replace,InStr,Left,Right,LeftTrim,RightTrim,Reverse,Split,Replace,Mid Functions
! Description:This is just like the name says, The Following Vb functions for Delphi all coded/translated by me:
RightTrim
LeftTrem
InStr
Mid
Left
Right
Replace
Split
Reverse
! By: telle
!
!This code is copyrighted and has! limited warranties.Please see http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=382&lngWId=7!for details.!**************************************

unit Functions;
interface
uses
 Windows,Messages, SysUtils, Classes, Graphics,StdCtrls;
function RightTrim(const s:String):String;
function LeftTrim(const s:String):String;
function InStr(Start: integer; Source: string; SourceToFind: string): integer;
function Mid(Source: string; Start: integer; Length: integer): string;
function Left(Source: string; Length: integer): string;
function Right(Source: string; Lengths: integer): string;
function Replace(sData: String; sSubstring: String; sNewsubstring: string): String;
function Split(Source, Deli: string; StringList: TStringList): TStringList;
function Reverse(Line: string): string;
implementation
function Reverse(Line: string): string;
	var i: integer;
	var a: string;
begin
	For i := 1 To Length(Line) do
	begin
	a := Right(Line, i);
	Result := Result + Left(a, 1);
	end;
end;
function Split(Source, Deli: string; StringList: TStringList): TStringList;
var
 EndOfCurrentString: byte;
begin
 repeat
EndOfCurrentString := Pos(Deli, Source);
if EndOfCurrentString = 0 then
 StringList.add(Source)
else
 StringList.add(Copy(Source, 1, EndOfCurrentString - 1));
Source := Copy(Source, EndOfCurrentString + length(Deli), length(Source) - EndOfCurrentString);
 until EndOfCurrentString = 0;
 result := StringList;
end;
function Replace(sData: String; sSubstring: String; sNewsubstring: string): String;
var
i: integer;
lSub: Longint;
lData: Longint;
begin
i := 1;
lSub := Length(sSubstring);
lData := Length(sData);
repeat
begin
i := InStr(i, sData, sSubstring);
If i = 0 Then
begin
sNewSubString := sData;
Exit
end
Else
sData := Copy(sData, 1, i - 1) + sNewsubstring + Copy(sData, i + lSub, lData);
i := i + lSub;
End;
 Until i > lData;
Replace := sData;
end;
function Left(Source: string; Length: integer): string;
begin
	Result := copy(Source,1,Length);
end;
function Right(Source: string; Lengths: integer): string;
begin
Result := copy(source,Length(Source) - Lengths,Lengths);
end;
function Mid(Source: string; Start: integer; Length: integer): string;
begin
	Result := copy(Source,Start,Length);
end;
function InStr(Start: integer; Source: string; SourceToFind: string): integer;
begin
	Result := pos(SourceToFind,copy(Source,Start,Length(Source) - (Start - 1)));
end;
function RightTrim(const s:String):String;
var
i:integer;
begin
 i:=length(s);
 while (i>0) and (s[i]<=#32) do
Dec(i);
 result:=Copy(s,1,i);
end;
function LeftTrim(const s:String):String;
var
i, L:integer;
begin
 L:=length(s);
 i:=1;
 while (i<=L) and (s[i]<=#32) do
Inc(i);
 result:=Copy(s,i, MaxInt);
end;
end.


Other 3 submission(s) by this author

 


Report Bad Submission
Use this form to tell us if this entry should be deleted (i.e contains no code, is a virus, etc.).
This submission should be removed because:

Your Vote

What do you think of this code (in the Intermediate category)?
(The code with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor (See voting log ...)
 

Other User Comments
7/21/2001 5:32:41 PMLord Nova Ice

if you find any bugs that i didnt leave a comment and ill fix ASAP, if you want a vb function that i dont have here leave a comment and ill try to make it, btw please vote ! ;]

Note: its not commented because its really plug in play
(If this comment was disrespectful, please report it.)

 
7/21/2001 7:16:59 PMJared Collums

A lot of these function have a Delphi counterpart, but it works just the same.
(If this comment was disrespectful, please report it.)

 
7/23/2001 12:31:28 AMLord Nova Ice

47 views and only 1 vote? 47 is a lot for delphi! please vote and leave me comments!
(If this comment was disrespectful, please report it.)

 
8/27/2001 2:34:49 PMcodecaine

ill vote for your efforts, delphi has a few functions built in now that do the same things, just to let ya k now.
(If this comment was disrespectful, please report it.)

 
9/17/2001 4:05:25 PMHighLander

Well..the Function Reverse..doesn't work correctly
(If this comment was disrespectful, please report it.)

 
9/18/2001 6:23:23 AMChrisMc

the funciont for Right doesn't work correctly. It should be:

Result := copy(source,Length(Source) - Lengths + 1,Lengths + 1);

These functions were quite useful for me.
Hey I'll vote for you!

ChrisMc

(If this comment was disrespectful, please report it.)

 
9/18/2001 6:24:45 AMChrisMC

Your function for "Right" is wrong, I think: It should be something like this:
Result := copy(source,Length(Source) - Lengths+1,Lengths+1);

You code quite helped me, so... I'll vote for you!

Have a nice day...
ChrisMc
(If this comment was disrespectful, please report it.)

 
6/30/2002 3:42:03 AMAlan777

Apart from the other comments above,
you don't need to have all of these in your uses clause:
Windows, Messages, Graphics, StdCtrls;
(If this comment was disrespectful, please report it.)

 
4/19/2003 4:43:33 PMRana Hossain

replacing
(If this comment was disrespectful, please report it.)

 
4/19/2003 4:43:59 PMRana Hossain

replacing "e; with /"e; doesn't work
(If this comment was disrespectful, please report it.)

 
6/26/2003 10:05:24 PMApi

uses StrUtils;

you can do
AnsiReplaceText, LeftStr, RightStr, MidStr, ReverseString, and alota the other stuff...

but its all gravvvvvvvvy
(If this comment was disrespectful, please report it.)

 
2/1/2008 6:08:31 PMSuNcO

I use the replace but got an empty value if there not exist the sSubstring
(If this comment was disrespectful, please report it.)

 
3/26/2009 7:10:46 AMbuger

You have errors in your function
-Replace-

Right code is
-------------
function Replace(sData: String; sSubstring: String; sNewsubstring: string): String;
var
i: integer;
lSub: Longint;
lData: Longint;
begin
Replace := sData;
i := 1;
lSub := Length(sSubstring);
lData := Length(sData);
repeat
begin
i := InStr(i, sData, sSubstring);
If i = 0 Then
begin
Replace := sData;
Exit
end
Else
sData := Copy(sData, 1, i - 1) + sNewsubstring + Copy(sData, i + lSub, lData);
i := i + lSub;
End;
Until i > lData;
Replace := sData;
end;
(If this comment was disrespectful, please report it.)

 

Add Your Feedback
Your feedback will be posted below and an email sent to the author. Please remember that the author was kind enough to share this with you, so any criticisms must be stated politely, or they will be deleted. (For feedback not related to this particular code, please click here instead.)
 

To post feedback, first please login.