Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[+10 Puan] String Manipülasyon İşlemleri
#16
Ben de değişik bir kaç metod yazdım. Onları paylaşayım:

function GetData(const ASource : String; const AStart, ALen : Integer) : String;
var
 ASize,
 AIndex : Integer;
begin
 ASize := ALen;
 AIndex:= AStart;

 if ASource.IsEmpty then
   Exit('');

 if ASize <= 0 then
   Exit('');

 if ASize > ASource.Length then
   ASize := ASource.Length;

 if not AIndex in [1..ASize] then
   AIndex := 1;

 SetLength(Result, ASize);

 Move(ASource[AIndex], Pointer(Result)^, ASize * SizeOf(Char));
end;

function FromRight(const ASource : String; const ALen : Integer) : String;
begin
 Result := GetData(ASource, (ASource.Length - ALen) + 1, ALen);
end;

function FromLeft(const ASource : String; const ALen : Integer) : String;
begin
 Result := GetData(ASource, 1, ALen);
end;

function FromRightEx(const ASource : String; const ALen : Integer) : String;
var
 PCurrent,
 PEnd,
 PTarget : PChar;
begin
 SetLength(Result, ALen);

 PCurrent  := @ASource[(ASource.Length - ALen) + 1];
 PEnd      := @ASource[ASource.Length];
 PTarget   := @Result[1];

 while PCurrent <= PEnd do
 begin
   PTarget^ := PCurrent^;

   Inc(PCurrent);
   Inc(PTarget);
 end;
end;

function FromLeftEx(const ASource : String; const ALen : Integer) : String;
var
 PCurrent,
 PEnd,
 PTarget : PChar;
begin
 SetLength(Result, ALen);

 PCurrent  := @ASource[1];
 PEnd      := @ASource[ALen];
 PTarget   := @Result[1];

 while PCurrent <= PEnd do
 begin
   PTarget^ := PCurrent^;

   Inc(PCurrent);
   Inc(PTarget);
 end;
end;

GetData metodunda bazı güvenlik kontrolleri koydum, diğerlerine de ekleyip eklememek tamamen sizin tasarrufunuz.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla


Bu Konudaki Yorumlar
[+10 Puan] String Manipülasyon İşlemleri - Yazar: 3ddark - 12-11-2018, Saat: 16:22
[+10 Puan] String Manipülasyon İşlemleri - Yazar: enes6635 - 12-11-2018, Saat: 17:17
[+10 Puan] String Manipülasyon İşlemleri - Yazar: ssahinoglu - 13-11-2018, Saat: 01:07
Cvp: [+10 Puan] String Manipülasyon İşlemleri - Yazar: Tuğrul HELVACI - 14-11-2018, Saat: 10:18
[+10 Puan] String Manipülasyon İşlemleri - Yazar: onurcan1977 - 20-04-2019, Saat: 00:48

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  String üzerinden enum değeri çağırma Abdullah ILGAZ 11 10.282 24-08-2023, Saat: 19:26
Son Yorum: veteran
  Windows Mesajlaşma Sistemi Hk. Soru (+10 Puan) Tuğrul HELVACI 26 23.640 06-10-2022, Saat: 18:47
Son Yorum: Master_Crazy
  Tek dizi içinde öncelik sırası belirleme (+10 puan) Abdullah ILGAZ 4 6.080 29-11-2017, Saat: 12:07
Son Yorum: SimaWB
  Bir Record'un içini doldurma (+20 puan) Tuğrul HELVACI 21 23.407 05-10-2017, Saat: 16:33
Son Yorum: ismailkocacan
  AV (Access Violation) nedir, neden bu hatayı alırız ? (+50 Puan) Tuğrul HELVACI 18 24.957 30-09-2017, Saat: 12:14
Son Yorum: ismailkocacan



Konuyu Okuyanlar: 1 Ziyaretçi