نمایش نتایج 1 تا 2 از 2

نام تاپیک: مقید کردن یک String List به یک Grid

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    Question مقید کردن یک String List به یک Grid

    با عرض سلام و وقت به خیر خدمت دوستان و اساتید گرامی
    بنده سوالی داشتم و امیدوارم که دوستان محبت کرده و بنده رو راهنمایی بکنند ، بنده میخواستم که یک String List رو که ساختاری مشابه زیر داره رو در یک String Grid نمایش بدم ، ولی متاسفانه نمیدونم چطوری.
    این String List به شکل زیر هست ....
    Name  = Reza
    Family = Mardan Poor
    Age = 33

    حالا چیزی که بنده میخوام این هست که مثلا" هر کدوم از این اطلاعات به صورت مجزا در یک فیلد و در مجموع در یک رکورد باشن ، که نهایتا" به صورت زیر باشه که در فیلد اول Name = Reza قرار بگیره و در فیلد دوم Family = Mardan Poor قرار بگیره و الی آخر.

    ممنون میشم لطف کرده و راهنمایی کنید.
    با تشکر.

  2. #2

    نقل قول: مقید کردن یک String List به یک Grid

    type
    TPersonalRec = record
    FirstName,
    LastName,
    Age : string;
    end;

    TPersonalRecEnumerator = record
    private const
    FRecFieldCount = 3;
    private
    FIndex: Integer;
    FList: TStringList;
    public
    constructor Create(AList: TStringList);
    function GetCurrent: TPersonalRec; inline;
    function MoveNext: Boolean; inline;
    property Current: TPersonalRec read GetCurrent;
    end;

    TPersonalStringList = class(TStringList)
    public
    function GetEnumerator: TPersonalRecEnumerator;
    end;

    { TPersonalRecEnumerator }

    constructor TPersonalRecEnumerator.Create(AList: TStringList);
    begin
    FList := AList;
    FIndex := -1 * FRecFieldCount;
    end;

    function TPersonalRecEnumerator.GetCurrent: TPersonalRec;
    begin
    Result.FirstName := FList.ValueFromIndex[FIndex];
    Result.LastName := FList.ValueFromIndex[FIndex+1];
    Result.Age := FList.ValueFromIndex[FIndex+2];
    end;

    function TPersonalRecEnumerator.MoveNext: Boolean;
    begin
    Result := FIndex < FList.Count - FRecFieldCount -1;
    if Result then
    Inc(FIndex,FRecFieldCount);
    end;

    { TPersonalStringList }

    function TPersonalStringList.GetEnumerator: TPersonalRecEnumerator;
    begin
    Result := TPersonalRecEnumerator.Create(Self);
    end;

    {TForm1}

    procedure TForm1.Button1Click(Sender: TObject);
    var
    PersonalList : TPersonalStringList;
    PersonalRec: TPersonalRec;
    begin
    PersonalList := TPersonalStringList.Create;
    try
    PersonalList.LoadFromFile('C:\Test.txt');
    for PersonalRec in PersonalList do
    begin
    StringGrid1.Cells[1,StringGrid1.RowCount-1] := PersonalRec.FirstName;
    StringGrid1.Cells[2,StringGrid1.RowCount-1] := PersonalRec.LastName;
    StringGrid1.Cells[3,StringGrid1.RowCount-1] := PersonalRec.Age;
    StringGrid1.RowCount := StringGrid1.RowCount + 1;
    end;
    finally
    PersonalList.Free;
    end;
    end;


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •