Uwaga: Funkcja, metoda, obiekt lub właściwość opisana w tym temacie jest wyłączona, jeśli usługa wyrażeń Microsoft Jet działa w trybie piaskownicy, co uniemożliwia oszacowanie potencjalnie niebezpiecznych wyrażeń. Aby uzyskać więcej informacji na temat trybu piaskownicy, wyszukaj "tryb piaskownicy" w Pomocy.
Zwraca wartość typu Liczba długa określającą bieżącą pozycję odczytu/zapisu w pliku otwartym za pomocą instrukcji Open .
Składnia
Seek( filenumber )
Wymaganyargumenttypu filenumber to liczba całkowita zawierająca prawidłowy numer pliku.
Uwagi
Funkcja szukania zwraca wartość z przedziału od 1 do 2 147 483 647 (co odpowiada wartości 2^31 – 1) włącznie.
Poniżej opisano zwracane wartości dla każdego trybu dostępu do pliku.
Tryb |
Wartość zwracana |
Losowe |
Numer następnego odczytanego lub napisanego rekordu |
Dane binarne, dane wyjściowe, dołączanie, wprowadzanie |
Pozycja bajtu, w której odbywa się następna operacja. Pierwszy bajt w pliku znajduje się na pozycji 1, drugi bajt na pozycji 2 itd. |
Przykład
Uwaga: Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
W tym przykładzie użyto funkcji Szukaj w celu zwrócenia bieżącej pozycji pliku. W przykładzie założono, TESTFILE jest plikiem zawierającym rekordy typu zdefiniowanego przez użytkownika Record.
Type Record ' Define user-defined type.
ID As Integer Name As String * 20 End Type
W przypadku plików otwartych w trybie losowym funkcja Szukaj zwraca liczbę następnego rekordu.
Dim MyRecord As Record ' Declare variable.
Open "TESTFILE" For Random As #1 Len = Len(MyRecord) Do While Not EOF(1) ' Loop until end of file. Get #1, , MyRecord ' Read next record. ' Print record number to the Immediate window. Debug.Print Seek(1) Loop Close #1 ' Close file.
W przypadku plików otwartych w trybach innych niż Tryb losowy funkcja Szukaj zwraca pozycję bajtu, w której ma miejsce następna operacja. Załóżmy, TESTFILE jest plikiem zawierającym kilka wierszy tekstu.
Dim MyChar
Open "TESTFILE" For Input As #1 ' Open file for reading. Do While Not EOF(1) ' Loop until end of file. MyChar = Input(1, #1) ' Read next character of data. ' Print byte position to the Immediate window. Debug.Print Seek(1) Loop Close #1 ' Close file.