16-08-19, 09:03 PM
(16-08-19, 11:05 AM)viv كتب : وعليكم السلام ورحمة اللهشكرا لكي اخي VIV
وكل عام وانتم بخير
بالنسبة لقراءة ملف نصي يوجد سؤال هنا فيه الاجابة
http://vb4arb.com/vb/showthread.php?tid=30050
بالنسبة لوضع نص او حروف فالطرق كثيرة
الطرق كثيرة منها على سبيل المثال
كود :
procedure Split
(const Delimiter: Char;
Input: string;
const Strings: TStrings);
begin
Assert(Assigned(Strings));
Strings.Clear;
Strings.Delimiter := Delimiter;
Strings.DelimitedText := Input;
end;
// Usage:
procedure TForm1.Button1Click(Sender: TObject);
var
A: TStringList;
begin
A := TStringList.Create;
try
Split(' ', 'your delphi guide', A);
ShowMessage(a[0]); //your
ShowMessage(a[1]); //delphi
ShowMessage(a[2]); //guide
finally
A.Free;
end;
end;
كما لست في حاجة الى استخدام Split function
كود :
program Project1;
{$APPTYPE CONSOLE}
uses
Classes;
var
List: TStrings;
begin
List := TStringList.Create;
try
ExtractStrings([':'], [], PChar('word:doc,txt,docx'), List);
WriteLn(List.Text);
ReadLn;
finally
List.Free;
end;
end.
لوضعها في List مثلا
كود :
List[0] = 'word'
List[1] = 'doc,txt,docx'
باستخدام System.StrUtils.SplitString
كود :
function SplitString(const S, Delimiters: string): TStringDynArray;
باستخدام الوحدة System.SysUtils.TStringHelper.Split كل هذه Function مختلفة
كود :
function Split(const Separator: array of Char): TArray<string>; overload;
function Split(const Separator: array of Char; Count: Integer): TArray<string>; overload;
function Split(const Separator: array of Char; Options: TStringSplitOptions): TArray<string>; overload;
function Split(const Separator: array of Char; Count: Integer; Options: TStringSplitOptions): TArray<string>; overload;
function Split(const Separator: array of string): TArray<string>; overload;
function Split(const Separator: array of string; Count: Integer): TArray<string>; overload;
function Split(const Separator: array of string; Options: TStringSplitOptions): TArray<string>; overload;
function Split(const Separator: array of string; Count: Integer; Options: TStringSplitOptions): TArray<string>; overload;
function Split(const Separator: array of Char; Quote: Char): TArray<string>; overload;
function Split(const Separator: array of Char; QuoteStart, QuoteEnd: Char): TArray<string>; overload;
function Split(const Separator: array of Char; QuoteStart, QuoteEnd: Char; Options: TStringSplitOptions): TArray<string>; overload;
function Split(const Separator: array of Char; QuoteStart, QuoteEnd: Char; Count: Integer): TArray<string>; overload;
function Split(const Separator: array of Char; QuoteStart, QuoteEnd: Char; Count: Integer; Options: TStringSplitOptions): TArray<string>; overload;
function Split(const Separator: array of string; Quote: Char): TArray<string>; overload;
function Split(const Separator: array of string; QuoteStart, QuoteEnd: Char): TArray<string>; overload;
function Split(const Separator: array of string; QuoteStart, QuoteEnd: Char; Options: TStringSplitOptions): TArray<string>; overload;
function Split(const Separator: array of string; QuoteStart, QuoteEnd: Char; Count: Integer): TArray<string>; overload;
function Split(const Separator: array of string; QuoteStart, QuoteEnd: Char; Count: Integer; Options: TStringSplitOptions): TArray<string>; overload;
مثال
كود :
var
MyString: String;
Splitted: TArray<String>;
begin
MyString := String.Join(',', ['String1', 'String2', 'String3']);
Splitted := MyString.Split([','], 2);
end.
ايضا مثال أخر
كود :
Uses
StrUtils, Classes;
Var
Str, Delimiter : String;
begin
// Str is the input string, Delimiter is the delimiter
With TStringList.Create Do
try
Text := ReplaceText(S,Delim,#13#10);
// From here on and until "finally", your desired result strings are
// in strings[0].. strings[Count-1)
finally
Free; //Clean everything up, and liberate your memory ;-)
end;
end;
مثال اخر
كود :
SplitString(':', 'abc') returns : result[0] = abc
SplitString(':', 'a:b:c:') returns : result[0] = a
result[1] = b
result[2] = c
result[3] = <empty string>
SplitString(':', 'a:b:c:', 2) returns: result[0] = a
result[1] = b
مثال اخر
كود :
procedure TForm208.Button1Click(Sender: TObject);
var
lst: TStringList;
begin
lst := TStringList.Create;
try
lst.LineBreak := '<->';
lst.Text := 'Whale<->Mammal<->Ocean';
Memo1.Lines := lst;
finally
lst.Free;
end;
end;
ققط مررت على المنتدى قبل حتى ان افطر .
بعد الفطور سوف اعود
لدي ه>ا الكود خاص بسطر واحد
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
List:TStrings;
begin
memo2.Clear;
List := TStringList.Create;
try
ExtractStrings([' '], [], PChar(memo1.Lines[i]), List);
memo2.Lines.add(List[2]+' '+ List[1]+' '+List[3]+' '+List[4]);
finally
List.Free;
end;
end;
