Apache OpenOffice (AOO) Bugzilla – Issue 61280
Basic Get and Put without position do not use pointer which was set by Seek
Last modified: 2016-07-21 18:34:21 UTC
On a file opened with Random access Get and Put without position always work at end of file and do not use the pointer position which was set with the seek-statement. To see this error use the following macros: (1) Sub Main Dim iNumber As Integer Dim aFile As String Dim wert As string aFile = "c:\daten.txt" iNumber = Freefile Open aFile For Random As #iNumber len=10 Put #iNumber, ,"AAAAAA" Put #iNumber, ,"BBBBBB" Put #iNumber, ,"CCCCCC" Put #iNumber, ,"DDDDDD" Put #iNumber, ,"EEEEEE" Put #iNumber, ,"FFFFFF" seek #iNumber,4 msgBox "loc()=" & loc(#iNumber)& " seek()=" & seek(#iNumber) get #iNumber, ,wert msgBox "wert=" & wert msgBox "loc()=" & loc(#iNumber)& " seek()=" & seek(#iNumber) Close #iNumber End Sub Then delete Seek-statement and use Get #iNumber,4,wert instead of Get #iNumber, ,wert Now you get the right record. (2) Sub Main Dim iNumber As Integer Dim aFile As String Dim wert As string aFile = "c:\data.txt" iNumber = Freefile Open aFile For Random As #iNumber len=10 Put #iNumber,1,"AAAAAA" Put #iNumber,2,"BBBBBB" Put #iNumber,3,"CCCCCC" Put #iNumber,4,"DDDDDD" Put #iNumber,5,"EEEEEE" Put #iNumber,6,"FFFFFF" seek #iNumber,4 put #iNumber,,"XXXXXX" get #iNumber,4,wert msgBox "wert 4=" & wert get #iNumber,7,wert msgBox "wert 7=" & wert Close #iNumber End Sub Then delete Seek-statement and use Put #iNumber,4,"XXXXXX" instead of Put #iNumber,,"XXXXXX" Now it writes the data to the desired position.
@ jsk: Please have a look.
to ab, target 2.0.4 / p3
-> OOo 2.x, started
basic and scripting issues now should be assigned to component "scripting"
set target to 3.x according to http://wiki.services.openoffice.org/wiki/Target_3x
Can't reproduce either of these any more, on Windows 8 or 32 bit Ubuntu Linux 14.04. Probably fixed by the new(ish) _USE_UNO file I/O that we use now instead. Resolving fixed.