89 lines
3.3 KiB
Text
89 lines
3.3 KiB
Text
Module FixedFile {
|
|
Read fixed$
|
|
OldLocale=Locale
|
|
\\ chr$(string_argument$)
|
|
\\ use Locale to convert from Ansi to Utf-16LE
|
|
\\ Read Ansi form files also use Locale
|
|
Locale 1032
|
|
Try ok {
|
|
\\ Make the file first
|
|
Const Center=2
|
|
Font "Courier New"
|
|
Bold 0
|
|
Italic 0
|
|
Def long m, z=1, f
|
|
Def text2read$,test3write$
|
|
Form 100, 50 ' 100 by 60 characters
|
|
Document txt$={Line 1...1.........2.........3.........4.........5.........6.........7.........8
|
|
Line 2
|
|
Line 3
|
|
Line 4
|
|
|
|
Line 6
|
|
Line 7
|
|
Indented line 8............................................................
|
|
Line 9 RT MARGIN
|
|
}
|
|
\\ use Help Open in M2000 console for details
|
|
\\ Method one
|
|
Report Center, "Make file"
|
|
\\ for WIDE Random \\ for Utf-16
|
|
Open fixed$ for Random Exclusive as #f len=80
|
|
m=Paragraph(txt$, 0)
|
|
z=1
|
|
If forward(txt$, m) then
|
|
while m, z<10
|
|
text2write$=Paragraph$(txt$,(m))
|
|
Print format$("Len:{0}, Data: {1}",Len(text2write$),text2write$)
|
|
Put #f, text2write$ , z
|
|
\\ record number from 1
|
|
\\ if number is total records plus one
|
|
\\ we append a record
|
|
z++
|
|
End while
|
|
End If
|
|
Print "Press any key"
|
|
Push Key$ : Drop
|
|
Form 80, 40
|
|
Report Center, "Method1"
|
|
For z=1 to 9
|
|
Get #f, text2read$, z
|
|
text2read$=StrRev$(text2read$)
|
|
Put #f, text2read$, z
|
|
Print text2read$
|
|
Next z
|
|
Close #f
|
|
Report Center, "Method2"
|
|
\\ Method2
|
|
\\ Buffer Clear Line80 ... \\ to clear memory
|
|
\\ here we write all bytes so not needed
|
|
Buffer Line80 as byte*80
|
|
m=filelen(fixed$)
|
|
If m mod 80=0 Then
|
|
m=1
|
|
\\ now Get/Put read write at byte position
|
|
\\ we have to use seek to move to byte position
|
|
\\ This way used for Binary files
|
|
Open fixed$ for Input as #f1
|
|
Open fixed$ for Append as #f2
|
|
while not eof(#f1)
|
|
seek #f1, m
|
|
Rem Print seek(#f)
|
|
Get #f1, Line80
|
|
Return line80,0:=Str$(StrRev$(Chr$(Eval$(line80,0,80))))
|
|
seek #f2, m
|
|
Put #f2, Line80
|
|
seek #f1, m
|
|
Get #f1, Line80
|
|
Print Chr$(Eval$(line80,0,80))
|
|
m+=80
|
|
End While
|
|
Close #f1
|
|
Close #f2
|
|
End if
|
|
}
|
|
\\ use Close with no parameters for close all files if something happen
|
|
If error then Close: Print Error$
|
|
Locale OldLocale
|
|
}
|
|
FixedFile "fixed.random"
|