# Native Code > برنامه نویسی در Delphi > برنامه نویسی در Delphi Prism >  خواندن از پورت

## omidan321

یه روتین یا تابعی میخام که از پورت سریال دیتا رو دریافت کنه 
برنامه ای که الان دارم مینویسم اینکاررو انجام میده ولی یه مشکل داره که وقتی تعداد بایت های ارسالی زیاد بشه  فقط 14 بایت رو دریافت داره و اینکار چون برنامه فوتر برنامه رو نمینوته پیدا کنه تو لو میافته و برنامه هنگ میمکنه 

دوستان راه حلی به هنشون میرسه که انجام بدم برا حل این مشکل ؟

----------


## gbg

بافرت کوچیک نیست
سوالت مربوط به دلفیه یا پریسم؟

----------


## omidan321

سلام مربوط به دلفيه

اگه بدونم خوندن از پين rts پورت سريال چه رفتاري داره (يعني با چه الگوريتمي دريافت ميكنه )احساس ميكنم مشكل رو بتونيم با هم حل كنيم

درباره بافر هم اطلاعات دقيقي ندارم (منظورتو متوجه  نشدم)

----------


## gbg

تو اینجا بپرس "مباحث عمومی دلفی و پاسکال"
بافر هم متغییر یا آرایه ایی هست که اطلاعاتی رو که می خونی توش ذخیره میشه
بهتر کدت رو بزاری یه نگاه بندازم

----------


## omidan321

رشته ای که ارسال میکنم اینه : 
str:='aaaaaaaaaaaaaaaUUUUUUUUUUU0051123456789U'
پورت سریال 11 تا 11 تا دریافت داره و یه مشکل دیگه اینه که تو الگوریتم ورود داده من معیار ورود تشخیص انتهای بسته هست که یه تک U هست که تو ورود اینو با 11 تا U ابتدایی اشتباه میگیره راه حلی داری که بشه اینو کامل دریافت کنه رشته ورودی رو استاد گفته ثابت همین هست نباید تغییر کنه حالا با این تفاسیر چه راه حلی پیشنهاد میکنی این قطعه کدیه که برا تعیین انتهای بسته در نظر گرفتم  


  40:

  sr_pos:=pos('U',str_recive);
  if sr_pos>0 then
    begin
      str:=str_om+copy(str_recive,1,sr_pos+2);
      if (sr_pos+2)=length(str_recive) then str_om:='' else str_om:=copy(str_recive,sr_pos+3,length(str_recive  )-sr_pos-2);
      str_recive:='';
    end else
    begin
      str_om:=str_om+str_recive;
      str_recive:='';
      if pos('U',str_om)<>0 then
        begin
          str_recive:=str_om;
          str_om:='';
          goto 40;
        end;
      goto 10;
    end;

10:

----------


## gbg

اول اینکه تو قسمتی که گفتم بپرس
دوم کدت رو در تگ code قرار بده
سوم استفاده از goto منسوخ شده
جهارم گفتی روتین خواندن از پرت ولی اینی که گذاشتی روتین پروسس اطلاعات دریافتیی هستش
پنجم مشکلت رو درست و کا مل توضیح بده

----------


## omidan321

> اول اینکه تو قسمتی که گفتم بپرس


 پرسیدم جواب ندادند یعنی کسی نبود جواب بده در طول یک هفته 



> روتین خواندن از پرت ولی اینی که گذاشتی روتین پروسس اطلاعات دریافتیی هستش


  وقتی پردازش اطلاعات درست انجام بشه همراهش روتینش هم انجام میشه خب 
الان مشکل من پیدا کردن فوتر رشته ای هست که در ورودی میاد (در بالا ذکرکردم)

----------

