Skip to Content.
Sympa Menu

freetds - [freetds] RE: textptr size in blob field

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: M C <mcbp223 AT yahoo.com>
  • To: freetds AT lists.ibiblio.org
  • Subject: [freetds] RE: textptr size in blob field
  • Date: Fri, 26 Mar 2004 00:08:08 -0800 (PST)


> From: Lowden, James K LowdenJK at bernstein.com
> Sent: Thu Mar 25 16:48:36 EST 2004

> MC,
>
> Let me make sure I understand your point.
>
> Columns whose varint_size is 4 may be of several datatypes, including
> SYBVARIANT and SYBLONGBINARY. If it's not one of those we assume (probably
> a little unsafely) that it's SYBTEXT/SYBIMAGE. In that case, we know the
> TDS stream won't have 4 bytes of data, but will instead have a 1-byte
> prefix describing the ensuing bytes.
>
> We read the byte an examine it. If its value is 16, we next read:
>
> 1. a 16-byte textptr handle
> 2. an 8-byte timestamp
> 3. a 4-byte integer, the column size
>
> else we set the column size to 0.
>
> You're saying the textptr is not always 16 bytes, that it may be anywhere
> from 1 to 256. You're looking at our data structure:
>
> typedef struct tds_blob
> {
> TDS_CHAR *textvalue;
> TDS_CHAR textptr[16];
> TDS_CHAR timestamp[8];
> } TDSBLOB;
>
> and asking if we could have "TDS_CHAR* textptr". I think I'd be inclined
> to make it:
>
> typedef struct tds_blob
> {
> TDS_CHAR *textvalue;
> TDS_TINYINT textptrlen;
> TDS_CHAR textptr[256];
> TDS_CHAR timestamp[8];
> } TDSBLOB;
>
> instead. The logic to allocate and free those bytes would otherwise be
> almost much as the 256 we're trying to save.
>
> Do you know a way to coerce the server into sending differently sized
> textptr's? If not, do you have an example, in a trace or TDSDUMP log? I
> would expect things to fall apart pretty quickly, because the TDS stream
> would be misinterpreted.
>
> > I take it that textptr works like a bookmark, the server can
> > send anything and the client will send back the same thing
> > when asking for a chunk.
>
> I think that's right.
>
> Regards,
>
> --jkl
>
> P.S., What's your name, or do you like to be called "MC"?

James,
I'm good guy I can't coerce the server :), I don't know how anyway, and 16
might be hard-coded as well in the known servers, but some custom servers
might want to use the feature if it is in the protocol.
I was wondering why do you do the switch based on size instead of data type?
I can send you my source code for the tests I'm doing, but it's in C++ on VC6
so far.
How do you send email to this list so they appear thread indented, as replies?

Mike

.. here follows the binary, with textptr size increasing from 1. Look for the
tag -<TIME>- which I put in the place of the timestamp, coming after textptr.

dpk 1433
streambufT::streambufT()
------------------------------------------------------------------------
>> TDS::PRELOGIN, length(8 + 33), packet(0), last
#9474; 00 00 15 00 06 01 00 1b 00 01 02 00 1c 00 01 03 ................
#9474; 00 1d 00 04 ff 08 00 01 55 00 00 00 00 e0 06 00 ........U.......
#9474; 00 .


<< TDS::RESPONSE, length(8 + 59), packet(1), last
#9474; aa 00 00 00 2f 0f a2 01 0e 0a 03 20 4c 6f 67 69 ..../...... Logi
#9474; 6e 20 66 61 69 6c 65 64 0d 0a 14 4d 69 63 72 6f n failed...Micro
#9474; 73 6f 66 74 20 53 51 4c 20 53 65 72 76 65 72 00 soft SQL Server.
#9474; 00 00 fd 00 fd 00 00 00 00 00 02 ..².²......


------------------------------------------------------------------------
streambufT::~streambufT()
streambufT::streambufT()
------------------------------------------------------------------------
>> TDS::LOGIN, length(8 + 504), packet(1), more
#9474; 44 50 4b 00 00 00 00 00 00 00 00 00 00 00 00 00 DPK.............
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 30 30 30 .............000
#9474; 30 30 35 31 34 00 00 00 00 00 00 00 00 00 00 00 00514...........
#9474; 00 00 00 00 00 44 45 53 54 77 77 08 03 01 06 0a .....DESTww.....
#9474; 09 01 01 00 08 00 00 00 00 00 00 00 53 51 4c 20 ............SQL
#9474; 51 75 65 72 79 20 41 6e 61 6c 79 7a 65 72 00 00 Query Analyzer..
#9474; 00 00 00 00 00 00 00 00 00 00 12 44 50 4b 2c 31 ...........DPK,1
#9474; 34 33 33 00 00 00 00 00 00 00 00 00 00 00 00 00 433.............
#9474; 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 02 04 02 00 00 4f 44 ..............OD
#9474; 42 43 00 00 00 00 00 00 04 07 00 00 00 00 0d 11 BC..............
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 ........


>> TDS::LOGIN, length(8 + 63), packet(2), last
#9474; 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#9474; 00 00 00 00 00 34 30 39 36 00 00 04 00 00 00 .....4096......


<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........


------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 353), packet(1), last
#9474; 65 78 65 63 20 73 70 5f 73 65 72 76 65 72 5f 69 exec sp_server_i
#9474; 6e 66 6f 20 31 20 65 78 65 63 20 73 70 5f 73 65 nfo 1 exec sp_se
#9474; 72 76 65 72 5f 69 6e 66 6f 20 32 20 65 78 65 63 rver_info 2 exec
#9474; 20 73 70 5f 73 65 72 76 65 72 5f 69 6e 66 6f 20 sp_server_info
#9474; 35 30 30 20 73 65 6c 65 63 74 20 35 30 31 2c 4e 500 select 501,N
#9474; 55 4c 4c 2c 31 20 77 68 65 72 65 20 27 61 27 3d ULL,1 where 'a'=
#9474; 27 41 27 20 73 65 6c 65 63 74 20 35 30 34 2c 63 'A' select 504,c
#9474; 2e 6e 61 6d 65 2c 63 2e 64 65 73 63 72 69 70 74 .name,c.descript
#9474; 69 6f 6e 2c 63 2e 64 65 66 69 6e 69 74 69 6f 6e ion,c.definition
#9474; 20 66 72 6f 6d 20 6d 61 73 74 65 72 2e 64 62 6f from master.dbo
#9474; 2e 73 79 73 63 68 61 72 73 65 74 73 20 63 2c 6d .syscharsets c,m
#9474; 61 73 74 65 72 2e 64 62 6f 2e 73 79 73 63 68 61 aster.dbo.syscha
#9474; 72 73 65 74 73 20 63 31 2c 6d 61 73 74 65 72 2e rsets c1,master.
#9474; 64 62 6f 2e 73 79 73 63 6f 6e 66 69 67 75 72 65 dbo.sysconfigure
#9474; 73 20 66 20 77 68 65 72 65 20 66 2e 63 6f 6e 66 s f where f.conf
#9474; 69 67 3d 31 32 33 20 61 6e 64 20 66 2e 76 61 6c ig=123 and f.val
#9474; 75 65 3d 63 31 2e 69 64 20 61 6e 64 20 63 31 2e ue=c1.id and c1.
#9474; 63 73 69 64 3d 63 2e 69 64 20 73 65 74 20 74 65 csid=c.id set te
#9474; 78 74 73 69 7a 65 20 32 31 34 37 34 38 33 36 34 xtsize 214748364
#9474; 37 20 73 65 74 20 61 72 69 74 68 61 62 6f 72 74 7 set arithabort
#9474; 20 6f 6e 20 73 65 74 20 69 6d 70 6c 69 63 69 74 on set implicit
#9474; 5f 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6f 66 _transactions of
#9474; 66 f


LINE: exec sp_server_info 1 exec sp_server_info 2 exec sp_server_info 500
select
501,NULL,1 where 'a'='A' select 504,c.name,c.description,c.definition from
mast
er.dbo.syscharsets c,master.dbo.syscharsets c1,master.dbo.sysconfigures f
where
f.config=123 and f.value=c1.id and c1.csid=c.id set textsize 2147483647 set
arit
habort on set implicit_transactions off

<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........


------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 18), packet(1), last
#9474; 53 45 54 20 54 45 58 54 53 49 5a 45 20 36 34 35 SET TEXTSIZE 645
#9474; 31 32 12


LINE: SET TEXTSIZE 64512

<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........


------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 25), packet(1), last
#9474; 73 65 6c 65 63 74 20 40 40 6d 69 63 72 6f 73 6f select @@microso
#9474; 66 74 76 65 72 73 69 6f 6e ftversion


LINE: select @@microsoftversion

<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........


------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 19), packet(1), last
#9474; 53 45 4c 45 43 54 20 53 55 53 45 52 5f 4e 41 4d SELECT SUSER_NAM
#9474; 45 28 29 E()


LINE: SELECT SUSER_NAME()

<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........


------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 13), packet(1), last
#9474; 73 65 6c 65 63 74 20 40 40 73 70 69 64 select @@spid


LINE: select @@spid

<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........


------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 23), packet(1), last
#9474; 73 65 74 20 73 68 6f 77 70 6c 61 6e 20 20 20 20 set showplan
#9474; 20 20 6f 66 66 0d 0a off..


LINE: set showplan off

LINE:

<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........


------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 32), packet(1), last
#9474; 53 45 54 20 4e 4f 45 58 45 43 20 4f 46 46 20 53 SET NOEXEC OFF S
#9474; 45 54 20 50 41 52 53 45 4f 4e 4c 59 20 4f 46 46 ET PARSEONLY OFF


LINE: SET NOEXEC OFF SET PARSEONLY OFF

<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........


------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 10), packet(1), last
#9474; 75 73 65 20 6d 61 73 74 65 72 use master


LINE: use master

<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........


------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 36), packet(1), last
#9474; 73 65 74 20 6e 6f 63 6f 75 6e 74 20 6f 66 66 0d set nocount off.
#9474; 0a 73 65 74 20 61 72 69 74 68 61 62 6f 72 74 20 .set arithabort
#9474; 6f 6e 0d 0a on..


LINE: set nocount off

LINE: set arithabort on

LINE:

<< TDS::RESPONSE, length(8 + 9), packet(1), last
#9474; fd 00 00 00 00 00 00 00 00 ²........


------------------------------------------------------------------------
>> TDS::SQL_BATCH, length(8 + 71), packet(1), last
#9474; 2d 2d 65 78 65 63 20 54 44 53 54 45 53 54 44 49 --exec TDSTESTDI
#9474; 52 3a 63 3a 5c 77 69 6e 6e 74 5c 2a 2e 69 6e 69 R:c:\winnt\*.ini
#9474; 0d 0a 65 78 65 63 20 54 44 53 54 45 53 54 44 49 ..exec TDSTESTDI
#9474; 52 3a 63 3a 5c 73 6f 6d 65 5f 66 69 6c 65 73 5c R:c:\some_files\
#9474; 2a 2e 74 78 74 0d 0a *.txt..


LINE: --exec TDSTESTDIR:c:\winnt\*.ini

LINE: exec TDSTESTDIR:c:\some_files\*.txt

<< TDS::RESPONSE, length(8 + 504), packet(1), more
#9474; a0 1a 00 08 66 69 6c 65 6e 61 6d 65 08 66 69 6c á...filename.fil
#9474; 65 73 69 7a 65 07 63 6f 6e 74 65 6e 74 a1 29 00 esize.content.).
#9474; 00 00 00 00 27 fe 00 00 00 00 38 00 00 00 00 23
....'#9632;....8....#
#9474; 00 00 00 40 13 00 63 3a 5c 73 6f 6d 65 5f 66 69 ...@..c:\some_fi
#9474; 6c 65 73 5c 2a 2e 74 78 74 d1 16 43 6f 70 79 20 les\*.txt..Copy
#9474; 28 31 30 29 20 6f 66 20 66 69 6c 65 35 2e 74 78 (10) of file5.tx
#9474; 74 10 00 00 00 01 30 2d 3c 54 49 4d 45 3e 2d 10 t.....0-<TIME>-.
#9474; 00 00 00 74 68 65 20 66 69 6c 65 20 23 35 20 68 ...the file #5 h
#9474; 65 72 65 d1 16 43 6f 70 79 20 28 31 31 29 20 6f ere..Copy (11) o
#9474; 66 20 66 69 6c 65 35 2e 74 78 74 10 00 00 00 02 f file5.txt.....
#9474; 30 31 2d 3c 54 49 4d 45 3e 2d 10 00 00 00 74 68 01-<TIME>-....th
#9474; 65 20 66 69 6c 65 20 23 35 20 68 65 72 65 d1 16 e file #5 here..
#9474; 43 6f 70 79 20 28 31 32 29 20 6f 66 20 66 69 6c Copy (12) of fil
#9474; 65 35 2e 74 78 74 10 00 00 00 03 30 31 32 2d 3c e5.txt.....012-<
#9474; 54 49 4d 45 3e 2d 10 00 00 00 74 68 65 20 66 69 TIME>-....the fi
#9474; 6c 65 20 23 35 20 68 65 72 65 d1 16 43 6f 70 79 le #5 here..Copy
#9474; 20 28 31 33 29 20 6f 66 20 66 69 6c 65 35 2e 74 (13) of file5.t
#9474; 78 74 10 00 00 00 04 30 31 32 33 2d 3c 54 49 4d xt.....0123-<TIM
#9474; 45 3e 2d 10 00 00 00 74 68 65 20 66 69 6c 65 20 E>-....the file
#9474; 23 35 20 68 65 72 65 d1 16 43 6f 70 79 20 28 31 #5 here..Copy (1
#9474; 34 29 20 6f 66 20 66 69 6c 65 35 2e 74 78 74 10 4) of file5.txt.
#9474; 00 00 00 05 30 31 32 33 34 2d 3c 54 49 4d 45 3e ....01234-<TIME>
#9474; 2d 10 00 00 00 74 68 65 20 66 69 6c 65 20 23 35 -....the file #5
#9474; 20 68 65 72 65 d1 16 43 6f 70 79 20 28 31 35 29 here..Copy (15)
#9474; 20 6f 66 20 66 69 6c 65 35 2e 74 78 74 10 00 00 of file5.txt...
#9474; 00 06 30 31 32 33 34 35 2d 3c 54 49 4d 45 3e 2d ..012345-<TIME>-
#9474; 10 00 00 00 74 68 65 20 66 69 6c 65 20 23 35 20 ....the file #5
#9474; 68 65 72 65 d1 16 43 6f 70 79 20 28 31 36 29 20 here..Copy (16)
#9474; 6f 66 20 66 69 6c 65 35 2e 74 78 74 10 00 00 00 of file5.txt....
#9474; 07 30 31 32 33 34 35 36 2d 3c 54 49 4d 45 3e 2d .0123456-<TIME>-
#9474; 10 00 00 00 74 68 65 20 66 69 6c 65 20 23 35 20 ....the file #5
#9474; 68 65 72 65 d1 15 43 6f here..Co


<< TDS::RESPONSE, length(8 + 504), packet(2), more
#9474; 70 79 20 28 32 29 20 6f 66 20 66 69 6c 65 35 2e py (2) of file5.
#9474; 74 78 74 10 00 00 00 08 30 31 32 33 34 35 36 37 txt.....01234567
#9474; 2d 3c 54 49 4d 45 3e 2d 10 00 00 00 74 68 65 20 -<TIME>-....the
#9474; 66 69 6c 65 20 23 35 20 68 65 72 65 d1 15 43 6f file #5 here..Co
#9474; 70 79 20 28 33 29 20 6f 66 20 66 69 6c 65 35 2e py (3) of file5.
#9474; 74 78 74 10 00 00 00 09 30 31 32 33 34 35 36 37 txt.....01234567
#9474; 38 2d 3c 54 49 4d 45 3e 2d 10 00 00 00 74 68 65 8-<TIME>-....the
#9474; 20 66 69 6c 65 20 23 35 20 68 65 72 65 d1 15 43 file #5 here..C
#9474; 6f 70 79 20 28 34 29 20 6f 66 20 66 69 6c 65 35 opy (4) of file5
#9474; 2e 74 78 74 10 00 00 00 0a 30 31 32 33 34 35 36 .txt.....0123456
#9474; 37 38 39 2d 3c 54 49 4d 45 3e 2d 10 00 00 00 74 789-<TIME>-....t
#9474; 68 65 20 66 69 6c 65 20 23 35 20 68 65 72 65 d1 he file #5 here.
#9474; 15 43 6f 70 79 20 28 35 29 20 6f 66 20 66 69 6c .Copy (5) of fil
#9474; 65 35 2e 74 78 74 10 00 00 00 0b 30 31 32 33 34 e5.txt.....01234
#9474; 35 36 37 38 39 41 2d 3c 54 49 4d 45 3e 2d 10 00 56789A-<TIME>-..
#9474; 00 00 74 68 65 20 66 69 6c 65 20 23 35 20 68 65 ..the file #5 he
#9474; 72 65 d1 15 43 6f 70 79 20 28 36 29 20 6f 66 20 re..Copy (6) of
#9474; 66 69 6c 65 35 2e 74 78 74 10 00 00 00 0c 30 31 file5.txt.....01
#9474; 32 33 34 35 36 37 38 39 41 42 2d 3c 54 49 4d 45 23456789AB-<TIME
#9474; 3e 2d 10 00 00 00 74 68 65 20 66 69 6c 65 20 23 >-....the file #
#9474; 35 20 68 65 72 65 d1 15 43 6f 70 79 20 28 37 29 5 here..Copy (7)
#9474; 20 6f 66 20 66 69 6c 65 35 2e 74 78 74 10 00 00 of file5.txt...
#9474; 00 0d 30 31 32 33 34 35 36 37 38 39 41 42 43 2d ..0123456789ABC-
#9474; 3c 54 49 4d 45 3e 2d 10 00 00 00 74 68 65 20 66 <TIME>-....the f
#9474; 69 6c 65 20 23 35 20 68 65 72 65 d1 15 43 6f 70 ile #5 here..Cop
#9474; 79 20 28 38 29 20 6f 66 20 66 69 6c 65 35 2e 74 y (8) of file5.t
#9474; 78 74 10 00 00 00 0e 30 31 32 33 34 35 36 37 38 xt.....012345678
#9474; 39 41 42 43 44 2d 3c 54 49 4d 45 3e 2d 10 00 00 9ABCD-<TIME>-...
#9474; 00 74 68 65 20 66 69 6c 65 20 23 35 20 68 65 72 .the file #5 her
#9474; 65 d1 15 43 6f 70 79 20 28 39 29 20 6f 66 20 66 e..Copy (9) of f
#9474; 69 6c 65 35 2e 74 78 74 10 00 00 00 0f 30 31 32 ile5.txt.....012
#9474; 33 34 35 36 37 38 39 41 3456789A


LINE:

<< TDS::RESPONSE, length(8 + 428), packet(3), last
#9474; 42 43 44 45 2d 3c 54 49 4d 45 3e 2d 10 00 00 00 BCDE-<TIME>-....
#9474; 74 68 65 20 66 69 6c 65 20 23 35 20 68 65 72 65 the file #5 here
#9474; d1 11 43 6f 70 79 20 6f 66 20 66 69 6c 65 35 2e ..Copy of file5.
#9474; 74 78 74 10 00 00 00 10 30 31 32 33 34 35 36 37 txt.....01234567
#9474; 38 39 41 42 43 44 45 46 2d 3c 54 49 4d 45 3e 2d 89ABCDEF-<TIME>-
#9474; 10 00 00 00 74 68 65 20 66 69 6c 65 20 23 35 20 ....the file #5
#9474; 68 65 72 65 d1 09 66 69 6c 65 31 2e 74 78 74 08 here..file1.txt.
#9474; 00 00 00 11 30 31 32 33 34 35 36 37 38 39 41 42 ....0123456789AB
#9474; 43 44 45 46 47 2d 3c 54 49 4d 45 3e 2d 08 00 00 CDEFG-<TIME>-...
#9474; 00 63 6f 6e 74 65 6e 74 31 d1 09 66 69 6c 65 32 .content1..file2
#9474; 2e 74 78 74 10 00 00 00 12 30 31 32 33 34 35 36 .txt.....0123456
#9474; 37 38 39 41 42 43 44 45 46 47 48 2d 3c 54 49 4d 789ABCDEFGH-<TIM
#9474; 45 3e 2d 10 00 00 00 68 65 72 65 20 69 73 20 66 E>-....here is f
#9474; 69 6c 65 20 32 0d 0a d1 09 66 69 6c 65 33 2e 74 ile 2....file3.t
#9474; 78 74 17 00 00 00 13 30 31 32 33 34 35 36 37 38 xt.....012345678
#9474; 39 41 42 43 44 45 46 47 48 49 2d 3c 54 49 4d 45 9ABCDEFGHI-<TIME
#9474; 3e 2d 17 00 00 00 61 6e 6f 74 68 65 72 20 73 6d >-....another sm
#9474; 61 6c 6c 20 66 69 6c 65 2c 20 33 0d 0a d1 09 66 all file, 3....f
#9474; 69 6c 65 34 2e 74 78 74 0c 00 00 00 14 30 31 32 ile4.txt.....012
#9474; 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 3456789ABCDEFGHI
#9474; 4a 2d 3c 54 49 4d 45 3e 2d 0c 00 00 00 66 69 6c J-<TIME>-....fil
#9474; 65 20 34 2c 20 6f 6b 0d 0a d1 09 66 69 6c 65 35 e 4, ok....file5
#9474; 2e 74 78 74 10 00 00 00 15 30 31 32 33 34 35 36 .txt.....0123456
#9474; 37 38 39 41 42 43 44 45 46 47 48 49 4a 4b 2d 3c 789ABCDEFGHIJK-<
#9474; 54 49 4d 45 3e 2d 10 00 00 00 74 68 65 20 66 69 TIME>-....the fi
#9474; 6c 65 20 23 35 20 68 65 72 65 fd 11 00 c1 00 15 le #5
here²..#9524;..
#9474; 00 00 00 fd 00 00 00 00 00 00 00 00 ...²........


------------------------------------------------------------------------



---------------------------------
Do you Yahoo!?
Yahoo! Finance Tax Center - File online. File on time.




Archive powered by MHonArc 2.6.24.

Top of Page