View Full Version : سوال دستورreadln
  
delphi_programmer_2010
سه شنبه 27 مهر 1389, 10:45 صبح
سلام.میخواستم از یک فایل متنی حاوی اطلاعات زیر
--------------TellNo---------------------Date------------------------Mablagh------------------------
              56454567                1389/03/09                      21000
              16262987                1389/05/06                      12500
              22358767                1389/01/02                      25800
اولین شماره تلفن یعنی 56454567 را بخوانم و آن را در یک متغیر به نام telno ذخیره کنم.چطور میشه؟
اگر ممکنه کدش رو کامل بنویسید
حمیدرضاصادقیان
سه شنبه 27 مهر 1389, 14:44 عصر
سلام.
اگر مجبور نیستید که حتما از Readln استفاده کنید میتونید از Tstringlist به شکل زیر استفاده کنیدک
var
  FileName : string;
  SList : TStringList;
  PhoneNo : string;
  i: Integer;
begin
  FileName := 'c:\test.txt';
  if FileExists(FileName) then
    raise Exception.Create('File not found');
  SList := TStringList.Create;
  try
    SList.LoadFromFile(FileName);
    for i := 1 to Memo1.Lines.Count - 1 do
    begin
      PhoneNo := Copy(Memo1.Lines[i],1,Pos(' ',Memo1.Lines[i]));
      ShowMessage(PhoneNo);
    end;
  finally
    SList.Free;
  end;
end;
موفق باشید
Felony
سه شنبه 27 مهر 1389, 15:32 عصر
سلام.
اگر مجبور نیستید که حتما از Readln استفاده کنید میتونید از Tstringlist به شکل زیر استفاده کنیدک
var
  FileName : string;
  SList : TStringList;
  PhoneNo : string;
  i: Integer;
begin
  FileName := 'c:\test.txt';
  if FileExists(FileName) then
    raise Exception.Create('File not found');
  SList := TStringList.Create;
  try
    SList.LoadFromFile(FileName);
    for i := 1 to Memo1.Lines.Count - 1 do
    begin
      PhoneNo := Copy(Memo1.Lines[i],1,Pos(' ',Memo1.Lines[i]));
      ShowMessage(PhoneNo);
    end;
  finally
    SList.Free;
  end;
end;
موفق باشید
البته یه اشتباه لپی تو کد هست :
var
  FileName : string;
  SList : TStringList;
  PhoneNo : string;
  i: Integer;
begin
  FileName := 'c:\test.txt';
  if not FileExists(FileName) then
    raise Exception.Create('File not found');
  SList := TStringList.Create;
  try
    SList.LoadFromFile(FileName);
    for i := 1 to Memo1.Lines.Count - 1 do
    begin
      PhoneNo := Copy(Memo1.Lines[i],1,Pos(' ',Memo1.Lines[i]));
      ShowMessage(PhoneNo);
    end;
  finally
    SList.Free;
  end;
end;
tdkhakpur
سه شنبه 27 مهر 1389, 18:26 عصر
البته یه اشتباه لپی تو کد هست :
 
var
  FileName : string;
  SList : TStringList;
  PhoneNo : string;
  i: Integer;
begin
  FileName := 'c:\test.txt';
  if not FileExists(FileName) then
    raise Exception.Create('File not found');
 
  SList := TStringList.Create;
  try
    SList.LoadFromFile(FileName);
    for i := 1 to Memo1.Lines.Count - 1 do
    begin
      PhoneNo := Copy(Memo1.Lines[i],1,Pos(' ',Memo1.Lines[i]));
      ShowMessage(PhoneNo);
    end;
  finally
    SList.Free;
  end;
end;
 یه اشتباه خیلی لپی هم اینجا هست که یک خط رد میشه
var
  FileName : string;
  SList : TStringList;
  PhoneNo : string;
  i: Integer;
begin
  FileName := 'c:\test.txt';
  if not FileExists(FileName) then
    raise Exception.Create('File not found');
 
  SList := TStringList.Create;
  try
    SList.LoadFromFile(FileName);
    for i := 0 to Memo1.Lines.Count - 1 do
    begin
      PhoneNo := Copy(Memo1.Lines[i],1,Pos(' ',Memo1.Lines[i]));
      ShowMessage(PhoneNo);
    end;
  finally
    SList.Free;
  end;
end;
delphi_programmer_2010
چهارشنبه 28 مهر 1389, 09:25 صبح
ممنون از پاسختون ولی باید حتما از فایل متنی بخونم.لطفا بگید چطور؟
delphi_programmer_2010
چهارشنبه 28 مهر 1389, 09:37 صبح
procedure ReadFromFile;
     begin
        If Not DirectoryExists('G:\mSohrabDocs\TstBedehi\Bedehi') then
            CreateDir('G:\mSohrabDocs\TstBedehi\Bedehi') ;
            AssignFile(myfile,'G:\mSohrabDocs\TstBedehi\Bedehi \bedehifile.txt') ;
            Rewrite(myfile);
            WriteLn(myfile,'    TelNo           UntilDate         MablagheBedehi');
            WriteLn(myfile,'  ----------    ----------------    -------------------');
            WriteLn(myfile,'   22368076         1389.06.05             21000');
            writeLn(myfile,'   22353243         1389.05.03             40000');
            CloseFile(myfile);
      end;
          while not Eof(myfile) do
             begin
               ReadLn(myfile,telno,untldate,MablaghBedehi);
               ShowMessage(telno+' '+untldate+' '+currtostr(MablaghBedehi));
               CloseFile(myfile);
             end;
             InsertVarToSQL;
 end;
 
من این کد رو نوشتم.
حمیدرضاصادقیان
چهارشنبه 28 مهر 1389, 10:45 صبح
یه اشتباه خیلی لپی هم اینجا هست که یک خط رد میشه
سلام.خط اول عنوان ستونها هست به همین خاطر نیازی نیست اولین خط رو داشته باشیم و حلقه رو از خط دوم شروع میکنیم.
ممنون از پاسختون ولی باید حتما از فایل متنی بخونم.لطفا بگید چطور؟
خوب کدی که نوشتم از فایل متنی میخواند. خوب دیگه مشکل  چیه؟!!
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.