PDA

View Full Version : خواندن كاراكتر به كاراكتر يك فايل متني



Batman
شنبه 21 دی 1387, 12:31 عصر
با سلام
من يك فايل متني رو با دستورات مربوط به فايلها باز كردم.
حالا ميخواستم بدونم چجوري ميشه كاراكتر به كاراكتر فايل متني رو خوند.
ممنوم.

Batman
شنبه 21 دی 1387, 17:22 عصر
دوستان تو ور خدا يكي كمك كنه خيلي ضروريه.
با تشكر

Hsimple11
شنبه 21 دی 1387, 17:39 عصر
http://www.programmersheaven.com/mb/Delphi/298287/298287/reading-each-individual-character/?S=B20000

Batman
شنبه 21 دی 1387, 20:52 عصر
http://www.programmersheaven.com/mb/Delphi/298287/298287/reading-each-individual-character/?S=B20000
با سلام
با تشكر از شما.
ولي برنامه اي كه توي سايت فوق هستش فقط اولين كاراكتر هر خط رو ميخونه نه كاراكتر به كاراكتر هر خط.
ببينيد من ميخوام يه فايل متني(مثلا 5 خط) اول خط اول رو كاراكتر به كاراكتر تا آخر بخونه و بعد خط دو. و به همين شكل تا انتهاي فايل.

Daren-shan
شنبه 21 دی 1387, 22:07 عصر
سلام دوست عزیز
یه چند تا راه هست یکیش این مدلیه


while not Eof(import) do
begin
read(import,c);
b:=b+c;
end;

Batman
یک شنبه 22 دی 1387, 13:32 عصر
سلام دوست عزیز
یه چند تا راه هست یکیش این مدلیه


while not Eof(import) do
begin
read(import,c);
b:=b+c;
end;

با سلام و تشکر از شما دوست عزیز.
اولا که متغییرهای b و c چیه و از چه نوعی هستن.
ثانیا eof خط بخ خط تا انتهای فایل پیش میره نه کاراکتر به کاراکتر.
لطفا پست هایی رو که نوشتم خوب مطالعه کنید.
بهرحال ممنونم.
دوستان کسی راه حل دیگه ای نداره؟

Zahed2008
یک شنبه 22 دی 1387, 14:37 عصر
سلام، من معمولاً خط به خط می خونم. بعدش با گرفتن طول خط کاراکترهای مورد نظرم رو پیدا می کنم. مثل کد زیر:

var stLine:string;
stCh:string[0..1];
txtFile:textFile;
i,L:integer;
...
while not eof(txtFile) do begin
readln(txtFile,stLine);
L:=length(stLine);
for i:=1 to L do begin
stCh:=stLine[i];
...
end;
end;

Daren-shan
یک شنبه 22 دی 1387, 14:51 عصر
بت من جان منظورت اصلا واضح نیست :D
ببین c از نوع کاراکتر هست یعنی char و b از نوع string شما باید بگی با کارکتر ها چی کار میخوای بکنی...مثلا تو این کدی که برات نوشته بودم کاراکتر به کاراکتر خونده میشه و تو یه استرینگ ریخته میشه...حالا شما اگه بخوای با اونکاراکتر کار دیگه ای انجام بدی میتونی به جای کد b:=b+c اون کد مورد نظرت رو بنویسی...
eof هم فقط یک شرط هست..یعنی هر موقع به انتها رسید برنامه اون لوپ رو تموم کنه و بره سراغ ادامه ی کار...یعنی فکر نکنم تعیین کننده ی چگونه خوندن باشه..به هر حال امیدوارم مفید بوده باشه اینا :P

این کدی هم که دوست عزیز زاهد نوشتن هم اگر به جای اینکه stline از نوع string باشه ازنوع char باشه کاراکتر به کارکتر میخونه

Batman
یک شنبه 22 دی 1387, 22:53 عصر
سلام دوست عزیز
یه چند تا راه هست یکیش این مدلیه


while not Eof(import) do
begin
read(import,c);
b:=b+c;
end;

با سلام و تشكر از شما
آقا كد شما رو دوباره چك كردم و به جواب هم رسيدم
خيلي ممنون