Przetwarzanie danych dla programistow.pdf
(
348 KB
)
Pobierz
Przetwarzanie danych dla programistów
IDZ DO
PRZYK£ADOW
Y ROZDZIA£
Przetwarzanie danych
SPIS TREŒCI
dla programistów
KATALOG KSI¥¯EK
Autor: Greg Wilson
T³umaczenie: Marek Pêtlicki
ISBN: 83-246-0407-3
Tytu³ orygina³u
:
Data Crunching
Format: B5, stron: 264
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Przetwarzanie danych to czynnoœæ, któr¹ programiœci na ca³ym œwiecie wykonuj¹
niemal codziennie. Konwersja danych pomiêdzy systemami informatycznymi, zmiana
formatów plików tekstowych, przeszukiwanie logów serwerów WWW — to wszystko
mo¿na nazwaæ przetwarzaniem danych. Znajomoœæ technik, dziêki którym takie
procesy odbywaj¹ siê szybko i efektywnie, to jedna z najwa¿niejszych umiejêtnoœci
programisty. Trudnoœci¹ mo¿e okazaæ siê fakt, ¿e nie istnieje brak jednego,
uniwersalnego sposobu przetwarzania danych. Do ka¿dego typu problemu nale¿y
podejœæ w sposób indywidualny, próbuj¹c roz³o¿yæ go na sekwencjê prostych
przekszta³ceñ, ³atwych do implementacji i testowania.
Czytaj¹c ksi¹¿kê „Przetwarzanie danych dla programistów”, poznasz metody
rozwi¹zywania problemów programistycznych zwi¹zanych z konwersj¹ danych ró¿nego
typu. Nauczysz siê analizowaæ istotê zagadnienia i dobieraæ najbardziej optymalny
sposób realizacji zadania. Dowiesz siê, jak w systemach Unix/Linux wykorzystaæ
wyra¿enia regularne i pow³oki tekstowe systemów z rodziny Unix/Linux do
przetwarzania danych tekstowych., Pprzeczytasz o u¿ytecznych, lecz czêsto
niedocenianych cechach jêzyków Java i Python oraz innych jêzyków programowania.
Przekonasz siê, ¿e mimo rozbie¿noœciró¿nic pomiêdzy ró¿nymi typami danych istnieje
kilka ogólnych wzorców, które powtarzaj¹ siê w wielu zastosowaniach niezale¿nie
od u¿ytegozastosowanego jêzyka programowania lub detali implementacyjnych.
Przetwarzanie danych tekstowych za pomoc¹ pow³oki Uniksa
Stosowanie wyra¿eñ regularnych
Analiza dokumentów XML
Pakowanie i rozpakowywanie danych binarnych
Zapytania w relacyjnych bazach danych
Testowanie mechanizmów konwersji danych
Opanuj jedn¹ z podstawowych umiejêtnoœci profesjonalnego programisty
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ONOWOŒCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Rozdział 1. Wprowadzenie .................................................... 5
1.1. Narysować molekułę ................................................................5
1.2. Czarna owca ...........................................................................7
1.3. Morał .....................................................................................8
1.4. Pytania o przetwarzanie danych ................................................9
1.5. Plan książki ...........................................................................13
Rozdział 2. Tekst ................................................................. 17
2.1. Odwracanie kolejności wierszy w pliku ....................................17
2.2. Przeformatowanie danych ......................................................20
2.3. Obsługa rekordów wielowierszowych .......................................29
2.4. Testowanie kolizji ..................................................................36
2.5. Włączanie plików zewnętrznych ..............................................42
2.6. Powłoka Uniksa ....................................................................47
2.7. Bardzo duże zbiory danych ....................................................56
2.8. Podsumowanie ......................................................................57
Rozdział 3. Wyrażenia regularne ......................................... 59
3.1. Powłoka ................................................................................61
3.2. Podstawy wzorców dopasowań ...............................................63
3.3. Wydobywanie dopasowanych wartości ....................................72
4
Przetwarzanie danych dla programistów
3.4. Zastosowania praktyczne .......................................................83
3.5. Różne języki ..........................................................................95
3.6. Inne systemy ..........................................................................99
3.7. Podsumowanie ....................................................................104
Rozdział 4. XML ................................................................ 105
4.1. Szybkie wprowadzenie .........................................................106
4.2. SAX ..................................................................................112
4.3. DOM .................................................................................126
4.4. XPath ................................................................................137
4.5. XSLT ................................................................................143
4.6. Podsumowanie ....................................................................153
Rozdział 5. Dane binarne ................................................... 157
5.1. Liczby ................................................................................158
5.2. Wejście i wyjście ..................................................................165
5.3. Ciągi znaków .......................................................................171
5.4. Podsumowanie ....................................................................182
Rozdział 6. Relacyjne bazy danych .................................... 185
6.1. Proste zapytania ..................................................................186
6.2. Zagnieżdżanie i negacja .......................................................197
6.3. Agregacje i perspektywy .......................................................203
6.4. Tworzenie, modyfikacja i usuwanie .......................................207
6.5. Zastosowanie SQL-a w programach .....................................216
6.6. Podsumowanie ....................................................................220
Rozdział 7. Diabeł tkwi w szczegółach .............................. 223
7.1. Testy jednostkowe ...............................................................223
7.2. Kodowanie i dekodowanie ....................................................235
7.3. Arytmetyka zmiennoprzecinkowa ..........................................239
7.4. Daty i czas ..........................................................................242
7.5. Podsumowanie ....................................................................248
Dodatek A Bibliografia ....................................................... 249
Skorowidz ........................................................................... 251
EKST JEST JEDNYM Z NAJSTARSZYCH FORMATÓW
danych
i nadal należy do najbardziej popularnych. Jednym z powodów po-
pularności takiego formatu jest fakt, że dane w nim zapisane można
przetwarzać i przeglądać za pomocą dowolnego edytora tekstów. Głębszy
powód tej popularności leży w tym, że pisanie programów do automatycznej
manipulacji tekstem jest bardzo łatwe. W tym rozdziale przyjrzymy się pro-
gramom tego typu, ich możliwościom i podstawowej strukturze. Zatrzy-
mamy się też chwilę przy wierszu poleceń systemów Unix, środowisku zo-
rientowanemu tekstowo, które nadal trzyma się bardzo dobrze, pomimo
niemal czterdziestoletniej tradycji.
2.1. Odwracanie kolejności wierszy
w pliku
Na początek weźmiemy pod uwagę zupełnie podstawowy problem przetwa-
rzania danych tekstowych, jakim jest odwrócenie kolejności wierszy w pliku.
Oto proste rozwiązanie tego problemu w Pythonie:
import sys
# Odczyt
input = open(sys.argv[1], "r")
lines = input.readlines()
18
Przetwarzanie danych dla programistów
input.close()
# Przetwarzanie
lines.reverse()
# Zapis
output = open(sys.argv[2], "w")
for line in lines:
print >> output, line.strip()
output.close()
Kod jest trywialny, posiada jednak strukturę charakterystyczną dla większości
procedur przetwarzających dane:
1.
odczyt danych wejściowych,
2.
przetwarzanie,
3.
zapis wyniku.
W wielu przypadkach możliwe jest zapisywanie wyniku na bieżąco w ramach
przetwarzania, lecz prawie zawsze najlepiej jest podzielić problem na po-
wyższe etapy. Po pierwsze, dzięki temu kod staje się czytelniejszy i łatwiej
go wykorzystać ponownie (problemy tego typu bywają bardzo powtarzalne).
Po drugie, to podejście jest niezwykle uniwersalne i działa prawie zawsze
1
,
natomiast odmiana polegająca na połączeniu etapu drugiego z trzecim nie
zawsze zadziała (przykładem jest właśnie odwracanie kolejności wierszy
pliku).
Zwolennicy mniej dynamicznych języków programowania mogą preferować
następującą wersję napisaną w Javie:
import java.util.*;
import java.io.*;
public class ReverseLines {
public static void main(String[] args) {
try {
// Odczyt
BufferedReader input = new BufferedReader(new
FileReader(args[0]));
ArrayList list = new ArrayList();
String line;
while ((line = input.readLine()) != null) {
list.add(line);
}
1
Chyba że danych jest zbyt wiele, by mogły zmieścić się w pamięci. Do tego tematu
wrócimy w dalszej części rozdziału.
Plik z chomika:
bomaszko
Inne pliki z tego folderu:
Microsoft_Press_eBook_Programming_Windows_8_Apps_with_HTML_CSS_and_JavaScript_PDF.pdf
(18385 KB)
Microsoft_Press_eBook_Xamarin_Preview_2_PDF.pdf
(13662 KB)
Microsoft_Press_ebook_Introducing_Windows_Server_2012_R2_PDF (1).pdf
(11475 KB)
Microsoft_Press_ebook_Introducing_Windows_Server_2012_R2_PDF.pdf
(11475 KB)
Microsoft_Press_ebook_Introducing_Windows_ITPro_PDF.pdf
(9529 KB)
Inne foldery tego chomika:
_ Basic _ QBasic ---
_ DOS _---
_ EDYTORY - IDE - GUI
_ EMULATORY - interpretery
_Biblioteki
Zgłoś jeśli
naruszono regulamin