Promotic
WikipediaLinkedInYoutubeTwitterFacebook

FileBinaryRead - metoda objektu Pm

Popis:
Načtení obsahu binárního souboru do proměnné typu Array (do pole hodnot).
Syntaxe:
FileBinaryRead(sFile As String, nOffset As Long, nAttr As Long, Values As Variant) As Long
Volání:
n = Pm.FileBinaryRead(sFile, nOffset, nAttr, Values)
Parametry:
sFile(String) název souboru (s cestou). Pokud není zadána celá cesta, doplní se relativně vzhledem k souborové složce aplikace.

Je doporučeno použít cestu v syntaxi PROMOTIC - viz PROMOTIC cesta k souborům nebo složkám.

nOffset(Long) udává bajtový offset (posun), který nastaví počátek čtení z binárního souboru (např. 10 znamená čtení od 10.bajtu souboru).
nAttr(Long) bitový atribut. Může být 0 nebo součet vhodných následujícících hodnot:
1 - příznak, že není znám počet ani typ načítaných dat. Metoda tehdy vytvoří v parametru Values nové pole o délce rovné DÉLKA_SOUBORU - OFFSET, jehož prvky budou typu Byte.

Pokud hodnota 1 není zadána, musí být parametr Values před voláním nastaven na datový typ pole (Array). Pak se data načítají ze souboru do pole postupně podle datových typů položek tohoto pole.

2 - příznak, jak se má číst textový řetězec (String), tj. jak se má určit jeho délka. Pokud je tato hodnota zadána, pak se předpokládá, že v položce pole Values je již string určité délky. Ze souboru se pak čte pro tuto položku tolik znaků, kolik ji má i tento vstupní string (tento vstupní string je tedy přepsán stejným počtem znaků ze souboru). V tomto případě by se však v souboru na místě, které se považuje za takový text, neměla objevit hodnota binární 0.

Pokud tato hodnota není zadána, pak se do položky typu String čtou znaky ze souboru tak dlouho, až se narazí na bajt s hodnotou 0.

Data v podobě řetězce (stringu) lze číst jen v případě, že v parametru nAttr není nastavena hodnota 1.

Values(Variant) Proměnná typu Array, do které se mají načítat binární data.
Vrácená hodnota:
Vrací počet načtených bajtů (Pozor, ne počet položek!). Pokud nastala jakákoli chyba, vrátí metoda záporné číslo.
Poznámka:

Pokud není nastaven nAttr=1, je potřeba před voláním metody nastavit datový typ položek pole pomocí funkcí VBScriptu CByte, CInt, CLng, CSng, CDbl, atd. Podle nastaveného datového typu pak metoda pozná, kolik bajtů má do položky načítat.

Jednotlivé položky pole se načítají podle svého datového typu takto:

Datový typ: Počet načítaných bajtů ze souboru:
Byte 1
Integer 2
Long 4
Date 8
Bool 1
Single 4
Double 8
String počet znaků + 1 (1 pro znak 0, jen v případě, když není nAttr=2)
 
Tato metoda není funkční pro Web Obrazy.
Příklad1:
Čtení ze souboru do proměnné Val o 3 položkách. Čte se od začátku souboru. První bajt se uloží do 1.položky typu Byte, další 4 bajty se uloží do 2.položky typu Long a dalších 5 bajtů se uloží jako textový řetězec (String).
Dim Val(2), length, i
Val(0) = CByte(0)
Val(1) = CLng(0)
Val(2) = "12345"
length = Pm.FileBinaryRead("#data:File.bin", 0, 2, Val)
If length = 1+4+5 Then
  Pm.Debug "Data úspěšně načtena. Následuje výpis položek:"
  Pm.Debug Val, 1
Else
  Pm.Debug "Data se nepodařilo načíst ! length=" & length
End If
Příklad2:
Čtení ze souboru do proměnné Val. Tuto proměnnou metoda nastaví na pole bajtů (Array položek typu Byte) o počtu daném velikosti souboru.
Dim Val, length
length = Pm.FileBinaryRead("#data:File.bin", 0, 1, Val)
If length > 0 Then
  Pm.Debug "Data úspěšně načtena. Následuje výpis položek:"
  Pm.Debug Val, 1
Else
  Pm.Debug "Data se nepodařilo načíst ! length=" & length
End If
Navigace:
 
- Pm
 
- Abs
- Cos
- E
- Exp
- FileBinaryRead
 
 
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice