🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #334586

Re: Port szeregowy, drukarka fiskalna znak NULL

#334586
From: Arivald
Date: Fri, 06 Jan 2012 14:05
61 lines
3199 bytes
W dniu 2012-01-06 14:50, Przemyslaw Rokicki pisze:
> On 6 Sty, 14:36, Przemyslaw Rokicki<dumpingow...@gmail.com>  wrote:
>> On 6 Sty, 14:01, PaSkol<DearthNOSPAMpas...@op.pl>  wrote:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> W dniu 2012-01-06 13:30, Główny Użytkownik pisze:
>>
>>>>     query := pchar(s);
>>>>     if (hCommDev<>    INVALID_HANDLE_VALUE)
>>>>       and (hCommDev>    0) then
>>>>     begin
>>>>       repeat
>>>>         StrCopy(bufferOut, query);
>>>>         FlushFileBuffers(hCommDev);
>>>>       until (writeSerialPort(hCommDev, Strlen(bufferOut))<>    FALSE);
>>>>     end;
>>
>>> Co to jest bufferOut? Bufor o ustalonej długości? Jeśli tak, to można
>>> wykonać:
>>> Move(s[1], bufferOut, Min(Length(s), Length(bufferOut))
>>
>>> Bo StrCopy (OIDP) kopiuje wg konwencji C, czyli do pierwszego #0;
>>
>> nic to nie dało, do drukarki nie idzie cały string bo nie ma zadnego
>> komunikatu.
>> Zresztą problem pewnie występuje na poziomie tworzenia stringa bo nie
>> wyświetla w showMessage jak pisałem wyżej.
>>
>
>
> juz chyba wiem w czym problem, robie lancuch string ktory jest typem
> domyslnie ansi string ktory konczy sie na #0 wiec do
> pchar wrzucam juz obciety landuch i stad problem.

NIE, NIE i NIE!
string jest dobry.

kod
  query := pchar(s);

powoduje jedynie przypisanie wskaźnika na początek bufora ze znakami do 
zmiennej query. żadnego kopiowania! Problem jest w tym jak później 
używasz tego... czyli StrCopy() i Strlen().

Zmienną query możesz spokojnie wyrzucić,  i zamiast niej używać pchar(s) 
bezpośrednio.

w ogóle writeSerialPort() to twoja funkcja? Jeśli tak, to przepisz ją 
tak żeby przyjmowała od razu adres bufora i jego długość, plus overload 
dla stringa.


-- 
Arivald
Technical Details
Message-ID: <je6v5h$6c8$1@news.dialog.net.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
References: <f0fe9b14-3716-4ff0-a8b9-46d680215996@q11g2000vbq.googlegroups.com> <628157f7-940a-46dc-9570-eb77d6b8edba@m4g2000vbc.googlegroups.com> <je4rcp$4j5$1@news.dialog.net.pl> <db4d62e5-5b51-483a-be8a-1528682b9e51@q11g2000vbq.googlegroups.com> <je6rb4$4tr$1@inews.gazeta.pl> <18537ecf-ae37-4437-b084-e89a12840b0b@o14g2000vbo.googlegroups.com> <c358d706-f919-4743-b266-ae7d7f80087a@j10g2000vbe.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
From: Arivald <NOSPAMarivald@interia.pl>
Newsgroups: pl.comp.lang.delphi
Subject: Re: Port szeregowy, drukarka fiskalna znak NULL
Date: Fri, 06 Jan 2012 15:05:15 +0100
Organization: Dialog Net
Lines: 61
Message-ID: <je6v5h$6c8$1@news.dialog.net.pl>
References: <f0fe9b14-3716-4ff0-a8b9-46d680215996@q11g2000vbq.googlegroups.com> <628157f7-940a-46dc-9570-eb77d6b8edba@m4g2000vbc.googlegroups.com> <je4rcp$4j5$1@news.dialog.net.pl> <db4d62e5-5b51-483a-be8a-1528682b9e51@q11g2000vbq.googlegroups.com> <je6rb4$4tr$1@inews.gazeta.pl> <18537ecf-ae37-4437-b084-e89a12840b0b@o14g2000vbo.googlegroups.com> <c358d706-f919-4743-b266-ae7d7f80087a@j10g2000vbe.googlegroups.com>
NNTP-Posting-Host: dynamic-78-8-152-25.ssp.dialog.net.pl
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1325858801 6536 78.8.152.25 (6 Jan 2012 14:06:41 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Fri, 6 Jan 2012 14:06:41 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20111222 Thunderbird/10.0
In-Reply-To: <c358d706-f919-4743-b266-ae7d7f80087a@j10g2000vbe.googlegroups.com>
X-Stationery: 0.7.7
X-Antivirus: avast! (VPS 120106-0, 2012-01-06), Outbound message
X-Antivirus-Status: Clean
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit