Programowanie kart elektronicznych wykład 9: Polecenia - część 1 dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015
POLECENIA wybór pliku, zapis i odczyt, wyszukiwanie, operacje na plikach, dr hab. dr hab. inż. inż. Marek Marek Mika, Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 2
Plan Wstęp Polecenia wyboru pliku Polecenia zapisu i odczytu Polecenia wyszukiwania Polecenia operacji na plikach PLAN dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 3
Protokoły i komunikacja master-slave Komunikacja zawsze w trybie master-slave polecenie z terminala przetwarzanie na karcie odpowiedź do terminala karta nigdy sama nie inicjuje wymiany danych Komunikacja zawsze z zastosowaniem wybranego protokołu T=0, T=1, itp. protokoły zaprojektowane i zoptymalizowane do zastosowań w obszarze KE ściśle określone zmiany wewnątrz aplikacji niedopuszczalne dane transmitowane najczęściej w kontenerach APDU transparentne dla warstwy transportowej POLECENIA - WSTĘP dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 4
Wpływ zastosowań główne zastosowania: przechowywanie danych i/lub medium autoryzacyjne zbiory poleceń zoptymalizowane pod kątem zastosowań ograniczenia pamięciowe nie pozwalają na stosowanie poleceń innych niż te zaprojektowane do konkretnego zastosowania tylko nieliczne systemy operacyjne zawierają niezredukowany zbiór poleceń POLECENIA - WSTĘP dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 5
Standard czy rozwiązania producenckie Działania producentów: tendencja do tworzenia własnych zbiorów poleceń dopasowanych do obecnych i przyszłych potrzeb systemów operacyjnych motywacja: brak odpowiednich poleceń w standardzie dążenie do uzyskania przewagi nad konkurencją dążenia do wyeliminowania konkurencji z pewnych obszarów zastosowań przed przystąpieniem do projektowania aplikacji wymaga zapoznania się z dokumentacją producenta systemu operacyjnego Wybór istniejącego standardu: otwartość, łatwość rozszerzania, sprawdzony system POLECENIA - WSTĘP dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 6
Klasyfikacja standardów Ogólne: ISO/IEC 7816-4, -7, -8, -9, -13 [ogólnie dla wszystkich zastosowań, bazodanowe, kryptograficzne, zarządzanie plikami i aplikacjami] Global Platform [podstawowy standard dla aplikacji JavaCard] Transakcje płatnicze: EMV 2000 [standard dla systemów operacyjnych kart stosowanych w sektorze finansowym] CEN EN 1546 [portmonetka elektroniczna] CEPS [portmonetka elektroniczna] Telekomunikacyjne: SIM: TS 51.011, TS 51.014 UICC: TS 102 221 USIM: TS 102 222 Łącznie ponad 20 standardów (lub względnie stabilnych draftów standardów) międzynarodowych ponad 150 poleceń POLECENIA - WSTĘP dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 7
Klasyfikacja poleceń wg funkcjonalności Polecenia operacyjne: operacje na plikach operacje na danych bazy danych bezpieczeństwo aplikacyjne Polecenia administracyjne: zarządzanie plikami produkcja testowanie sprzętu/oprogramowania transmisja danych POLECENIA - WSTĘP dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 8
Przegląd poleceń Polecenia operacyjne zdefiniowane w standardach, polecenia administracyjne na ogół charakterystyczne dla poszczególnych systemów operacyjnych Negatywna odpowiedź (błąd lub zabroniona operacja) zawiera tylko kod powrotu Niektóre polecenia mają opisane w standardzie opcje, które jednak nie są spotykane w praktyce (zbyt skomplikowane, bez praktycznego znaczenia) Opis dotyczy wyłącznie wariantów mających znaczenie praktyczne Opis na podstawie standardu, który definiuje największą liczbę opcji dla danego polecenia POLECENIA - WSTĘP dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 9
Plan Wstęp Polecenia wyboru pliku Polecenia zapisu i odczytu Polecenia wyszukiwania Polecenia operacji na plikach Polecenia związane z autoryzacją osób Polecenia związane z autoryzacją urządzeń PLAN dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 10
Wybór pliku Operacje plikowe we wszystkich współczesnych systemach operacyjnych dla kart elektronicznych są zorientowane obiektowo zatem przed wykonaniem jakiejkolwiek operacji na pliku należy go najpierw wybrać Operacje plikowe można wykonywać tylko na pliku, który jest w danej chwili wybrany System operacyjny kontroluje reguły dostępu do pliku Pozytywnie wykonane SELECT nowy plik wybrany w miejsce obecnego, negatywnie obecny plik nadal jest wybrany POLECENIA POLECENIA WYBORU PLIKU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 11
Typy plików MF (master file, plik główny) główny katalog systemu plików karty, domyślnie wybrany po restarcie karty (nie wymaga stosowania instrukcji wyboru) DF (directory file, dedicated file) plik reprezentujący katalog EF (elementary file) plik roboczy (terminal) lub plik z danymi (karta) POLECENIA POLECENIA WYBORU PLIKU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 12
Instrukcja SELECT Służy do wyboru pliku lub katalogu Plik adresowany jest: dwubajtowym identyfikatorem pliku (FID) ścieżką dostępu (tylko w normie ISO) - względną względem bieżącego DF - bezwzględną względem MF Katalogi adresowane są: nazwą katalogu (1 do 16 bajtów) może ona zawierać międzynarodowy numer aplikacji (AID 5-16 bajtów) - można zastosować część AID (pomijając najmniej znaczące bajty) możliwość wyboru poprzedniego, następnego, pierwszego lub ostatniego katalogu względem bieżącego DF Wykonanie SELECT pozytywne nowy plik wybrany w miejsce obecnego, negatywne obecny plik nadal jest wybrany POLECENIA POLECENIA WYBORU PLIKU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 13
Żądanie informacji o pliku Ze strony terminala po pozytywnym wykonaniu SELECT W odpowiedzi karta udostępnia zestaw informacji o pliku określony w standardzie i zależny od typu pliku m.in.: struktura pliku rozmiar reguły dostępu POLECENIA POLECENIA WYBORU PLIKU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 14
Funkcjonalność SELECT wg ISO/IEC 7816-4 Argumenty FID względna ścieżka dostępu bezwzględna ścieżka dostępu lub wybór DF wyższego poziomu pierwszy, poprzedni, następny, ostatni katalog (dla częściowego AID) lub żądanie podania informacji o wybranym pliku lub nazwa katalogu (jeśli DF) POLECENIA POLECENIA WYBORU PLIKU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 15
Schemat typowego przetwarzania SELECT Terminal (IFD) Karta (IFC) SELECT [FID = 3F00 ] Przeglądanie drzewa plików w poszukiwaniu pliku o FID = 3F00 IF (znaleziono plik) THEN kod powrotu = OK ELSE kod powrotu = nie znalezionp pliku IF (kod powrotu = OK) THEN pozytywny wybór pliku ELSE nie można wybrać pliku Odpowiedź [kod powrotu] POLECENIA POLECENIA WYBORU PLIKU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 16
Bezpośredni wybór pliku Tylko dla standardowych poleceń zapisu / odczytu Przez podanie 5-bitowego skróconego FID tylko dla EF ograniczenie do bieżącego DF Plik wybierany bezpośrednio przed operacją zapisu / odczytu Zalety i wady: uproszczona sekwencja poleceń większa prędkość przetwarzania (brak SELECT) POLECENIA POLECENIA WYBORU PLIKU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 17
Polecenie STATUS Wg TS 51.011 Zwraca informacje o bieżącym pliku (podobnie jak SELECT) typ struktura rozmiar FID prawa dostępu informacje o blokadzie rzadko używany wtedy, gdy terminal potrzebuje informacje o bieżącym pliku POLECENIA POLECENIA WYBORU PLIKU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 18
Funkcjonalność STATUS wg TS 51.011 Argumenty: brak Odpowiedź: informacje o bieżącym pliku kod powrotu POLECENIA POLECENIA WYBORU PLIKU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 19
Polecenie CLOSE APPLICATION Wg EN 726-3 Uzupełniająco do SELECT i STATUS jako polecenie zakończenia aplikacji Argumentem FID zamykanej aplikacji W odpowiedzi karta wraca to pierwotnego (po resecie) stanu bezpieczeństwa Stosowane, gdy terminal musi mieć gwarancję powrotu o pierwotnego stanu bezpieczeństwa Jeśli system operacyjny karty nie obsługuje tego polecenia, to pierwotny stan bezpieczeństwa osiągany jest przez wybór MF POLECENIA POLECENIA WYBORU PLIKU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 20
Plan Wstęp Polecenia wyboru pliku Polecenia zapisu i odczytu Polecenia wyszukiwania Polecenia operacji na plikach PLAN dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 21
Polecenia odczytu i zapisu - wstęp Stosowane głównie dla aplikacji traktujących kartę jako bezpieczne miejsce przechowywania danych Dane w plikach EF Możliwość ustalenia indywidualnych reguł dostępu do pliku dla poszczególnych aplikacji i/lub użytkowników Różne metody odczytu i zapisu w zależności od struktury pliku EF (brak zgodności z OO, historyczne) Dwie klasy poleceń: dla plików transparentnych (płaskich) dla plików strukturalnych (cykliczna, liniowa stała, linowa zmienna) POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 22
Odczyt / zapis w transparentnym EF Plik transparentny amorficzny, bez wewnętrznej struktury danych Historycznie pierwszy z typów plików stosowanych w KE (pamięciowych) Plik adresowany liniowo o dostępie bajtowym Podstawowe polecenia do odczytu: - READ BINARY do zapisu: - WRITE BINARY - UPDATE BINARY POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 23
Argumenty: liczba bajtów do odczytu offset pierwszego odczytanego bajta skrócony FID przy bezpośrednim wyborze pliku (opcjonalnie) Odpowiedź: dane odczytane z pliku kod powrotu Funkcjonalność READ BINARY wg ISO/IEC 7816-4 POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 24
Argumenty: liczba bajtów do zapisu dane (bajty) do zapisania offset pierwszego zapisywanego bajta skrócony FID przy bezpośrednim wyborze pliku (opcjonalnie i tylko w wybranych OS) Odpowiedź: kod powrotu Funkcjonalność WRITE BINARY wg ISO/IEC 7816-4 POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 25
Argumenty: liczba bajtów do zapisu dane (bajty) do zapisania offset pierwszego zapisywanego bajta skrócony FID przy bezpośrednim wyborze pliku (opcjonalnie i tylko w wybranych OS) Odpowiedź: kod powrotu Funkcjonalność UPDATE BINARY wg ISO/IEC 7816-4 POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 26
WRITE BINARY i UPDATE BINARY - różnice Programowalna pamięć trwała karty (EEPROM, Flash) w stanie niskiej energii znajduje się w tzw. stanie bezpiecznym (logiczne 0 lub 1 w zależności od konwencji) Przejście ze stanu bezpiecznego do stanu przeciwnego wymaga naładowania tych komórek (operacja czyszczenia dawniej możliwa tylko na całych blokach danych) WRITE BINARY przywraca stan komórki do stanu bezpiecznego (AND dla 0, OR dla 1) obecnie rzadko stosowany UPDATE BINARY radzi sobie równie dobrze zarówno z przywracaniem do stanu bezpiecznego, jak i z przejściem do stanu przeciwnego (jest równoważne działaniu ERASE i WRITE na wybranych bajtach) POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 27
Przykładowe zastosowania WRITE BINARY i UPDATE BINARY WRITE BINARY pliki o dostępie WORM (write once, read multiple) WRITE BINARY i UPDATE BINARY bezpieczne liczniki: - każdy bit odpowiada jednostce monetarnej - WRITE BINARY służy do sprowadzenia takiego bitu do stanu bezpiecznego (zdejmowanie jednostek monetarnych z karty) - UPDATE BINARY służy do doładowania karty (nie da się tego osiągnąć manipulując właściwościami fizycznymi środowiska) POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 28
Przykładowa sekwencja odczytu i zapisu część 1 - READ BINARY Zawartość pamięci przed: 01 02 03 FF 00 FF 00 n READ BINARY ([offset = 2 bajty, liczba bajtów = 5]) IF (kod powrotu = OK) THEN pozytywny odczyt ELSE przerwij działanie Odczytane dane 03 FF 00 FF 00 Odpowiedź : - odczytane dane - kod powrotu Zawartość pamięci po: 01 02 03 FF 00 FF 00 n POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 29
Przykładowa sekwencja odczytu i zapisu część 2 - WRITE BINARY Zawartość pamięci przed: 01 02 03 FF 00 FF 00 n READ BINARY ([offset = 3 bajty, liczba bajtów = 2, dane do zapisu = F0F0 ]) Odpowiedź : - kod powrotu IF (kod powrotu = OK) THEN pozytywny zapis ELSE przerwij działanie Zawartość pamięci po: 01 02 03 F0 00 FF 00 n POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 30
Przykładowa sekwencja odczytu i zapisu część 3 - UPDATE BINARY Zawartość pamięci przed: 01 02 03 F0 00 FF 00 n READ BINARY ([offset = 5 bajtów, liczba bajtów = 2, dane do zapisu = F0F0 ]) Odpowiedź : - kod powrotu IF (kod powrotu = OK) THEN pozytywny zapis ELSE przerwij działanie Zawartość pamięci po: 01 02 03 F0 00 F0 F0 n POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 31
Polecenie ERASE BINARY Usuwa dane z pliku EF począwszy od podanego offsetu do miejsca wyznaczonego przez drugi offset lub do końca pliku Usunięcie danych oznacza w tym przypadku stan logicznego wymazania danych, który nie zawsze jest tożsamy z fizycznym stanem wymazania i musi być indywidualnie zdefiniowany dla każdego sytemu operacyjnego POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 32
Argumenty: offset pierwszego bajta do wymazania offset ostatniego bajta do wymazania (opcjonalne) skrócony FID przy bezpośrednim wyborze pliku (opcjonalnie i tylko w wybranych OS) Odpowiedź: kod powrotu Funkcjonalność ERASE BINARY wg ISO/IEC 7816-4 POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 33
Odczyt / zapis w strukturalnym EF Plik strukturalny o określonej rekordowo zorientowanej wewnętrznej strukturze danych: cyklicznej liniowo stałej liniowo zmiennej Adresowanie danych: w operacji zapisu rekord w operacji odczytu rekord lub część rekordu od jego pierwszego bajta Po wybraniu (SELECT) strukturalnego pliku EF system operacyjny tworzy wskaźnik do rekordu (początkowo wartość niezdefiniowana) Wskaźnik do rekordu jest aktywny do momentu wybrania następnego pliku Podstawowe polecenia do odczytu: - READ RECORD do zapisu: - WRITE RECORD - UPDATE RECORD do wyszukiwania: - SEEK RECORD POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 34
Funkcjonalność READ RECORD wg ISO/IEC 7816-4 Argumenty: liczba rekordów do odczytania lub tryb (bieżący, następny, poprzedni, pierwszy ostatni) lub odczyt wszystkich rekordów od n do ostatniego lub odczyt wszystkich rekordów od pierwszego do ostatniego skrócony FID przy bezpośrednim wyborze pliku (opcjonalnie i tylko w wybranych OS) Odpowiedź: odczytane dane kod powrotu POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 35
Argumenty: rekord danych do zapisania liczba rekordów do zapisania lub tryb (bieżący, następny, poprzedni, pierwszy ostatni) skrócony FID przy bezpośrednim wyborze pliku (opcjonalnie i tylko w wybranych OS) Odpowiedź: kod powrotu POLECENIA POLECENIA ODCZYTU / ZAPISU Funkcjonalność WRITE RECORD wg ISO/IEC 7816-4 dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 36
Funkcjonalność UPDATE RECORD wg ISO/IEC 7816-4 Argumenty: rekord danych do zapisania liczba rekordów do zapisania lub tryb (bieżący, następny, poprzedni, pierwszy ostatni) skrócony FID przy bezpośrednim wyborze pliku (opcjonalnie i tylko w wybranych OS) Odpowiedź: kod powrotu POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 37
Adresowanie rekordów Wszystkie polecenia mogą określić sposób dostępu do pliku: dostęp bezpośredni za pomocą bezwzględnego numeru rekordu domyślny nie powoduje zmiany wskaźnika rekordu pośredni przez względne adresowanie wskaźnika rekordu wartościami oznaczającymi pierwszy, ostatni, następny i poprzedni rekord POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 38
Przykładowy plik o strukturze rekordowej Nr rekordu Zawartość rekordu 1 Hiro Protagonist pierwszy 2 Y.T. 3 Juanita poprzedni 4 Raven bieżący 5 Onkel Enzo następny 6 The Black Sun 7 Cosa Nostra Pizza 8 Enki ostatni POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 39
Argumenty: rekord danych do zapisania skrócony FID przy bezpośrednim wyborze pliku (opcjonalnie i tylko w wybranych OS) Odpowiedź: kod powrotu Funkcjonalność APPEND RECORD wg ISO/IEC 7816-4 POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 40
Argumenty: liczba obiektów danych do odczytu znacznik obiektów danych do odczytu (plik z rekordami TLV) Odpowiedź: odczytane obiekty danych kod powrotu Funkcjonalność GET DATA wg ISO/IEC 7816-4 POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 41
Argumenty: liczba obiektów danych do zapisu obiekty danych do zapisu Odpowiedź: kod powrotu Funkcjonalność PUT DATA wg ISO/IEC 7816-4 POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 42
Inne polecenia RESIZE zmiana rozmiaru pliku SET DATA i RETRIEVE DATA podobne do GET DATA i PUT DATA przeznaczone głównie dla dużych wolumenów danych kodowanych TLV POLECENIA POLECENIA ODCZYTU / ZAPISU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 43
Plan Wstęp Polecenia wyboru pliku Polecenia zapisu i odczytu Polecenia wyszukiwania Polecenia operacji na plikach PLAN dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 44
Polecenia wyszukiwania Ułatwiające znalezienie odpowiednich danych w plikach strukturalnych Możliwość podania offsetu Zmienna długość wyszukiwanego ciągu Możliwość określenia kierunku wyszukiwania (wprzód, wstecz) Wymagane podanie punktu początkowego Odnalezienie poszukiwanego ciągu powoduje ustawienie wskaźnika na właściwy rekord i poinformowanie terminala o pozytywnym zakończeniu wyszukiwania Polecenia: SEEK SEARCH RECORD SEARCH BINARY POLECENIA POLECENIA WYSZUKIWANIA dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 45
Funkcjonalność SEEK wg TS 51.011 Argumenty: długość szukanego ciągu szukany ciąg offset tryb (wprzód od początku wstecz od końca wprzód od następnego rekordu wstecz od poprzedniego rekordu) podanie numeru znalezionego rekordu (opcja) Odpowiedź: numer rekordu (jeśli wybrano tę opcję przy podawaniu argumentów) kod powrotu POLECENIA POLECENIA WYSZUKIWANIA dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 46
Funkcjonalność SEARCH RECORD wg ISO/IEC 7816-9 Argumenty: długość szukanego ciągu szukany ciąg offset tryb (wprzód od początku wstecz od końca wprzód od następnego rekordu wstecz od poprzedniego rekordu) skrócony FID przy bezpośrednim wyborze pliku (opcjonalnie i tylko w wybranych OS) Odpowiedź: numer rekordu (jeśli wybrano tę opcję przy podawaniu argumentów) kod powrotu POLECENIA POLECENIA WYSZUKIWANIA dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 47
Funkcjonalność SEARCH BINARY wg ISO/IEC 7816-9 Przeznaczenie: wyszukiwanie danych w pliku transparentnym Argumenty: długość szukanego ciągu szukany ciąg offset skrócony FID przy bezpośrednim wyborze pliku (opcjonalnie i tylko w wybranych OS) Odpowiedź: offset do znalezionych danych kod powrotu POLECENIA POLECENIA WYSZUKIWANIA dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 48
Przykładowy plik o strukturze rekordowej Nr rekordu Zawartość rekordu 1 Hiro Protagonist pierwszy 2 Y.T. 3 Juanita poprzedni 4 Raven bieżący 5 Onkel Enzo następny 6 The Black Sun 7 Cosa Nostra Pizza 8 Enki ostatni POLECENIA POLECENIA WYSZUKIWANIA dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 49
Terminal (IFD) SEEK [szukany ciąg = Enki, kierunek szukania = wprzód od początku, przesłanie numeru rekordu] IF (kod powrotu = OK) THEN znaleziono szukany ciąg ELSE nie znaleziono szukanego ciągu Schemat przykładowego zastosowania SEEK Karta (IFC) Wyszukiwanie Odpowiedź [numer rekordu = 8, kod powrotu] SEEK [szukany ciąg = Hiro Protagonist, kierunek szukania = wstecz od końca, przesłanie numeru rekordu] IF (kod powrotu = OK) THEN znaleziono szukany ciąg ELSE nie znaleziono szukanego ciągu Wyszukiwanie Odpowiedź [numer rekordu = 1, kod powrotu] POLECENIA POLECENIA WYBORU PLIKU dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 50
Plan Wstęp Polecenia wyboru pliku Polecenia zapisu i odczytu Polecenia wyszukiwania Polecenia operacji na plikach PLAN dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 51
Polecenia operacji na plikach Umożliwiają modyfikację zawartości pliku, ale nie przez prosty zapis Polecenia INCREASE i DECREASE stosowane do plików o strukturze cyklicznej są używane jako liczniki (w portmonetkach elektronicznych i licznikach) Polecenie EXECUTE powoduje wykonanie wykonywalnego pliku EF, program taki otrzymuje dane od terminala i wysyła z powrotem wyniki POLECENIA POLECENIA WYSZUKIWANIA dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 52
Argumenty: odejmowana wartość Odpowiedź: wartość po odejmowaniu nowa wartość rekordu kod powrotu Funkcjonalność DECREASE wg TS 51.011 POLECENIA POLECENIA WYSZUKIWANIA dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 53
Argumenty: dodawana wartość Odpowiedź: wartość po dodawaniu nowa wartość rekordu kod powrotu Funkcjonalność INCREASE wg TS 51.011 POLECENIA POLECENIA WYSZUKIWANIA dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 54
Funkcjonalność EXECUTE wg EN 726-3 Argumenty: dane przekazywane do programu reprezentowanego przez plik wykonywalny Odpowiedź: dane będące wynikiem działania programu kod powrotu POLECENIA POLECENIA WYSZUKIWANIA dr hab. inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011-2015 55