dBASE Programming - read(more than 1) giving odd result

This is Interesting: Free IT Magazines  
Home > Archive > dBASE Programming > January 2007 > read(more than 1) giving odd result





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author read(more than 1) giving odd result
Peter B

2007-01-09, 1:31 am

When I use read(x) when x > 1 I get strange results. Am I doing something
wrong? I have DBase Plus 2.0 b1698 and Windows XP Pro.

Thanks, Peter
e.g. :-
// progran to show problem
clear
//Create test file
testf = new file()

testf.create("testwave.wav","AB")

testf.write("R")
testf.write("I")
testf.write("F")
testf.write("F")
testf.write(chr(66))
testf.write(chr(180))
testf.write(chr(32))
testf.write(chr(0))

testf.close()

// read 4 bytes at a time
file1 = new file()
file1.open("testwave.wav","RB" )

header = file1.read(4) // ************************
?header

a = file1.read(1)
b = file1.read(1)
c = file1.read(1)
d = file1.read(1)

?asc(a)
?asc(b)
?asc(c)
?asc(d)

// tidy

file1.close()
a = null
b = null
c = null
d = null
header = null
file1 = null

// read 1 byte at a time

file1 = new file()
file1.open("testwave.wav","RB" )
header = ""

for l = 1 to 4
a = file1.read(1)
header = header + a
endfor

?header

a = file1.read(1)
b = file1.read(1)
c = file1.read(1)
d = file1.read(1)

?asc(a)
?asc(b)
?asc(c)
?asc(d)

// tidy

file1.close()
a = null
b = null
c = null
d = null
header = null
file1 = null
testf = null

// end



Ivar B. Jessen

2007-01-09, 1:31 am

On Mon, 8 Jan 2007 09:48:04 +0100, in dbase.programming,
Subject: read(more than 1) giving odd result,
Message-ID: <cL7kbOwMHHA.1128@news-server>,
"Peter B" <Peter@nowhere.com> wrote:

>When I use read(x) when x > 1 I get strange results. Am I doing something
>wrong? I have DBase Plus 2.0 b1698 and Windows XP Pro.
>
>Thanks, Peter
>e.g. :-
> // progran to show problem
>clear
>//Create test file
> testf = new file()
>
> testf.create("testwave.wav","AB")
>
> testf.write("R")
> testf.write("I")
> testf.write("F")
> testf.write("F")
> testf.write(chr(66))
> testf.write(chr(180))
> testf.write(chr(32))
> testf.write(chr(0))
>
> testf.close()
>
>// read 4 bytes at a time
>file1 = new file()
>file1.open("testwave.wav","RB" )
>
> header = file1.read(4) // ************************


// ?header
> header = file1.read(4) // ************************

?
for i = 0 to 3
?? chr(header.getByte(i))
endfor

> a = file1.read(1)
> b = file1.read(1)

....


Ivar B. Jessen
Peter B

2007-01-09, 1:31 am

Thank you, Lots more to learn about bytes now!

Peter

"Ivar B. Jessen" <bergishagen@it.notthis.dk> wrote in message
news:b064q292l17tqscatm3aih816al7udb73k@
4ax.com...[vbcol=seagreen]
> On Mon, 8 Jan 2007 09:48:04 +0100, in dbase.programming,
> Subject: read(more than 1) giving odd result,
> Message-ID: <cL7kbOwMHHA.1128@news-server>,
> "Peter B" <Peter@nowhere.com> wrote:
>


Peter B

2007-01-09, 1:31 am

Can I :-

data = infile.read(255)
outfile.write(data)

or do I need to use getByte() and setByte?

Peter


"Ivar B. Jessen" <bergishagen@it.notthis.dk> wrote in message
news:b064q292l17tqscatm3aih816al7udb73k@
4ax.com...
> On Mon, 8 Jan 2007 09:48:04 +0100, in dbase.programming,
> Subject: read(more than 1) giving odd result,
> Message-ID: <cL7kbOwMHHA.1128@news-server>,
> "Peter B" <Peter@nowhere.com> wrote:
>
>
> // ?header
> ?
> for i = 0 to 3
> ?? chr(header.getByte(i))
> endfor
>
> ....
>
>
> Ivar B. Jessen



Ivar B. Jessen

2007-01-09, 1:31 am

On Mon, 8 Jan 2007 17:04:11 +0100, in dbase.programming,
Subject: Re: read(more than 1) giving odd result,
Message-ID: <wBuFuB0MHHA.1068@news-server>,
"Peter B" <Peter@nowhere.com> wrote:

>Can I :-
>
>data = infile.read(255)
>outfile.write(data)
>
>or do I need to use getByte() and setByte?
>

Peter,

Why don't you simply try it out yourself with a simple program like the one below my signature?


Ivar B. Jessen

//-----
fin = new file()
fin.open("testwave.wav", "R")
data = fin.read(4)

fout = new file()
fout.create("testwave.txt")
fout.open("testwave.txt", "W")
fout.write(data)
fout.close()

modi comm testwave.txt
//-----
Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com