diff --git a/Data/VW_Engines.txt b/Data/VW_Engines.txt new file mode 100644 index 0000000..4abe73a --- /dev/null +++ b/Data/VW_Engines.txt @@ -0,0 +1,581 @@ +Code Size Layout Fuel kW HP Application From To + 1 1100 F4 P 18 25 Type 1 1947 1954 + 1 1200 F4 P 22 30 Type 1 1954 1960 + 1 1200 F4 P 25 34 Type 1 1960 1965 + 1 1500 F4 P 31 42 Type 2 1963 1964 + 1 1500 F4 P 33 45 Type 3 1961 1965 + 1 1500 F4 P 40 54 Type 3 1963 1965 + 1C 1600 I4 D 52 70 Iltis 1987 1988 + 1E 2383 I6 P 70 95 LT 1988 1996 + 1F 1598 I4 P 55 75 Polo, Caddy, Passat 1988 1995 + 1G 2383 I6T D 68 92 LT 1988 1989 + 1H 1781 I4S P 118 160 G60 Golf, Passat, Corrado 1988 1993 + 1P 1791 I4 P 72 98 Golf Syncro 1988 1991 + 1S 2383 I6 D 51 69 LT 1988 1992 + 1V 1600 I4 P 45 60 Golf, Jetta 1989 1992 + 1W 1400 I4 P 35 47 Polo 1990 1994 + 1X 1900 I4 P 45 60 Transporter 1990 1995 + 1Y 1896 I4 P 48 64 Polo, Caddy, Passat 1989 2001 + 1Z 1896 I4T D 66 90 Polo, Golf, Sharan, Passat 1993 1997 + 2C 1300 I4 P 45 60 Golf 1987 1987 + 2E 1984 I4 P 86 115 Golf, Vento, Corrado, Passat 1990 1994 + 2G 1300 I4 P 40 54 Polo, Golf, Jetta 1989 1992 + 2H 1800 I4 P 73 98 Golf Cabrio 1989 1993 + 2L 2400 I4 D 62 83 Taro 1989 1995 + 2Y 1800 I4 P 62 83 Taro 1989 1994 + 22R 2400 I4 P 85 114 Taro 1989 1995 + 28B 1896 I4 D 48 65 Industrial Engine 1990 1994 + 262 1781 I4 P 50 68 Industrial Engine 1983 1994 + 3F 1300 I4 P 56 75 Polo 1989 1994 + 3F 1300 I4 P 58 78 Polo, Polo Coupe 1989 1992 + 4Y 2200 I4 P 70 94 Taro 1989 1994 + 436 1896 I4 D 36 49 Industrial Engine 2006 2009 + 463 1968 I4T D 63 86 Industrial Engine 2007 + 474 1968 I4T D 74 101 Industrial Engine 2007 + 68A 1588 I4T D 45 61 Industrial Engine 1983 1988 + 68C 1588 I4T D 50 68 Industrial Engine 1983 1994 + 694 1986 I5T D 75 102 Industrial Engine 1990 1992 + 751 2370 I5 D 55 75 Industrial Engine 1983 1993 + 752 2383 I6T D 66 90 Industrial Engine 1983 1993 + 761 2383 I6 D 55 75 Industrial Engine 1981 1984 + 9A 1984 I4 P 100 136 Corrado, Passat 1988 1995 + AAA 2792 V6 P 128 174 Golf, Vento, Passat, Sharan 1992 2001 + AAB 2370 I5 D 57 77 T4 Transporter, Syncro 1990 1998 + AAC 1968 I4 P 63 84 Transporter 1990 1999 + AAF 2461 I5 P 81 110 Transporter, Syncro 1990 1993 + AAK 1043 I4 P 33 45 Polo, Trabant, Jetta 1990 1991 + AAM 1781 I4 P 55 75 Golf, Vento, Passat 1990 1995 + AAU 1043 I4 P 33 45 Polo, Polo Coupe 1990 1994 + AAV 1300 I4 P 40 54 Polo, Polo Coupe 1991 1994 + AAZ 1896 I4T D 55 75 Golf, Vento, Passat 1991 1998 + AB 1300 F4 P 32 44 Type 1 1970 1973 + ABA 1984 I4 P 85 116 Polo, Golf, Jetta, Passat 1995 1999 + ABD 1400 I4 P 45 60 Golf, Vento 1991 1995 + ABD 1400 I4 P 41 55 Golf 1991 1994 + ABF 1984 I4 P 110 150 Golf, Vento, Passat 1992 1995 + ABL 1896 I4T D 51 68 T4 Transporter 1992 1997 + ABN 1600 I4 P 56 75 Golf, Jetta, Passat 1991 1992 + ABS 1791 I4 P 66 90 Golf, Vento, Passat 1991 1994 + ABU 1600 I4 P 56 75 Golf, Vento 1992 1994 + ABV 2900 V6 P 135 184 Passat 1994 1996 + ABV 2900 V6 P 140 190 Golf, Corrado 1991 1997 + ABX 1600 I4 P 54 72 Golf, Jetta 1991 1995 + AC 1300 F4 P 30 40 Type 1 1994 1999 + ACC 1791 I4 P 66 90 Golf, Jetta 1995 1995 + ACK 2771 V6 P 142 193 Passat 1997 2001 + ACL 2383 I6T D 70 95 LT 1991 1996 + ACM 1043 I4 P 33 45 Polo, Polo Coupe 1992 1992 + ACP 2370 I5 D 57 77 Industrial Engine 1992 1994 + ACT 2383 I6 D 51 69 LT 1992 1995 + ACU 2461 I5 P 81 110 Transporter 1993 1996 + ACV 2461 I5 P 76 102 Transporter 1996 2002 + ACX 2000 I4 P 86 115 Passat 1994 1995 + AD 1600 F4 P 37 50 Type 1, 2 1970 1973 + ADD 1791 I4 P 66 90 Golf, Jetta 1995 1995 + ADE 1896 I4T D 55 75 Industrial Engine 1991 1998 + ADF 1781 I4 P 50 68 Industrial Engine 1992 2002 + ADG 1896 I4 D 48 65 Industrial Engine 1994 + ADK 1588 I4 D 40 54 Industrial Engine 1994 2002 + ADP 1595 I4 P 75 101 Passat 1996 1999 + ADR 1781 I4 P 92 125 Passat 1996 1999 + ADX 1300 I4 P 41 55 Polo 1994 1995 + ADY 1984 I4 P 86 115 Golf, Vento, Corrado, Passat 1994 1996 + ADZ 1791 I4 P 66 90 Golf, Vento 1994 1997 + AEA 1600 I4 P 56 75 Polo, Golf, Vento 1994 1995 + AEB 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 1996 2001 + AED 1390 I4 P 55 75 Fox, Polo, Golf, T2 Brazil 2005 + AEE 1598 I4 P 55 75 Polo, Golf, Caddy, Vento 1995 1998 + AEF 1900 I4 D 48 64 Polo, Caddy 1994 1996 + AEH 1595 I4 P 74 99 Polo, Golf, Jetta, Passat 1997 2004 + AEK 1595 I4 P 74 100 Golf, Vento, Passat 1994 1995 + AEN 2461 I5 P 81 110 Transporter 1995 1996 + AEP 2000 I4 P 80 107 Golf, Vento, Passat 1995 1999 + AER 1000 I4 P 37 50 Lupo, Polo 1996 1999 + AES 2792 V6 P 103 140 Transporter 1996 2000 + AET 2461 I5 P 85 116 Transporter 1996 2003 + AEU 2461 I5 P 81 110 Transporter 1995 2003 + AEV 1043 I4 P 33 45 Polo 1994 1996 + AEX 1400 I4 P 45 60 Polo, Golf, Vento 1995 1998 + AEY 1896 I4 D 44 60 Polo, Golf, Vento, Caddy 1995 1999 + AF 1600 F4 P 34 46 Type 1, 2, 181 1970 1982 + AFB 2496 V6T D 110 150 Passat 1998 2000 + AFD 1896 I4T D 60 82 Industrial Engine 1994 2002 + AFH 1400 I4 P 74 101 Polo 1996 1999 + AFH 1390 I4 P 59 80 Lupo, Polo, Golf, Jetta 2006 2009 + AFK 1390 I4 P 59 80 Lupo, Polo, Golf, Jetta 2006 2009 + AFN 1896 I4T D 81 110 Golf, Vento, Passat, Sharan 1995 1999 + AFP 2792 V6 P 130 177 Golf, Jetta, Corrado 1995 2002 + AFT 1600 I4 P 75 100 Polo, Golf, Vento, Passat 1995 2001 + AFY 1800 I4 P 86 115 Passat 1997 1999 + AG 1600 F4 P 33 44 Type 181 1970 1976 + AGE 2800 V6 P 134 180 Passat 1997 2001 + AGF 2461 I5 D 55 75 LT 1996 2001 + AGG 1984 I4 P 85 116 Golf, Passat 1995 1999 + AGK 2799 I4T D 92 125 LT 1996 1998 + AGL 2300 I4 P 105 143 LT 1996 2001 + AGN 1781 I4 P 92 125 Golf, Bora 1997 2000 + AGR 1896 I4T D 66 90 Polo, Golf, Jetta 1999 2001 + AGX 2461 I5 D 56 75 LT 1996 2001 + AGZ 2324 V5 P 110 150 Golf, Bora, Passat 1997 2001 + AHB 1716 I4 D 44 60 Lupo, Polo, Caddy 1996 2000 + AHD 2500 I5T D 76 102 LT 1996 2001 + AHF 1896 I4T D 81 110 Golf, Jetta 1997 2006 + AHG 1716 I4 D 44 60 Lupo, Polo, Caddy 1996 2000 + AHH 1896 I4T D 66 90 Passat 1996 2000 + AHL 1595 I4 P 74 100 Passat 1996 1999 + AHS 1600 I4 P 56 75 Polo 1996 1999 + AHU 1896 I4T D 66 90 Golf, Vento, Sharan, Passat 1996 2000 + AHW 1390 I4 P 55 75 Lupo, Polo, Golf, Jetta 2006 + AJ 1600 F4 P 37 50 Type 1 1974 1980 + AJA 2370 I5 D 55 75 T4 Transporter 1997 2003 + AJH 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2004 + AJM 1896 I4T D 85 116 Golf, Jetta, Passat 1998 2002 + AJQ 1781 I4T P 132 179 Polo, Golf, Jetta 2005 + AJS 4921 V10T D 230 313 Phaeton 2002 2006 + AJV 1598 I4 P 88 120 Polo, Lupo, GX3 1997 2003 + AKL 1595 I4 P 74 99 Polo, Golf, Jetta, Passat 1997 2004 + AKN 2496 V6T D 110 150 Passat 1999 2003 + AKQ 1390 I4 P 55 75 Lupo, Polo, Golf, Jetta 2006 + AKS 1595 I4 P 74 101 Golf, Jetta 1997 1998 + AKU 1716 I4 D 44 60 Lupo, Polo, Caddy 1996 2000 + AKW 1716 I4 D 44 60 Lupo, Polo, Caddy 1996 2000 + AL 1600 F4 P 35 47 Type 181 1973 1979 + ALD 1000 I4 P 37 50 Lupo, Polo 1999 2002 + ALE 1896 I4T D 66 90 Polo, Jetta, Caddy 1997 1999 + ALH 1896 I4T D 66 90 Polo, Golf, Jetta, New Beetle 1997 2004 + ALL 1000 I4 P 37 50 Lupo, Polo 1997 1999 + ALT 1984 I4 P 96 131 Passat 2001 2005 + ALZ 1595 I4 P 75 102 Passat 2000 2005 + AMB 1781 I4T P 125 170 Jetta, New Beetle, Passat 2002 2005 + AMF 1422 I3T D 55 75 Polo, Lupo 1999 2003 + AMX 2771 V6 P 142 193 Passat 2000 2005 + AN 1800 F4 P 63 85 Type 4 1973 1974 + ANA 1595 I4 P 74 101 Passat 1999 2000 + ANB 1781 I4T P 110 150 Passat 1997 2000 + ANC 1896 I4 D 44 60 Volkswagen Marine 2003 + ANF 2461 I5 D 55 75 Volkswagen Marine 2002 + ANG 2461 I5T D 88 120 Volkswagen Marine 2002 + ANH 2461 I5T D 111 151 Volkswagen Marine 2002 + ANN 1781 I4 P 55 75 Golf, Vento, Passat 1990 1995 + ANP 1791 I4 P 66 90 Golf, Vento 1994 1997 + ANU 1896 I4T D 66 90 Sharan 1999 + ANV 1000 I4 P 37 50 Lupo, Polo 1999 2000 + ANY 1191 I3T D 45 61 Lupo 1999 2000 + AP 1800 F4 P 51 68 Type 2 1973 1975 + APE 1390 I4 P 55 75 Lupo, Polo, Golf, Jetta 2006 + APF 1595 I4 P 74 99 Polo, Golf, Jetta, Passat 1997 2004 + APH 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2004 + APK 1984 I4 P 85 116 Polo, Golf, Jetta, Passat 1998 2002 + APL 2461 I5 P 85 116 Transporter 1999 1999 + APP 1781 I4T P 132 179 Polo, Golf, Jetta 2005 + APQ 1400 I4 P 45 60 Polo, Golf, Vento 1995 1998 + APR 2771 V6 P 142 193 Passat 1997 2000 + APT 1781 I4 P 92 125 Passat 1996 2000 + APU 1781 I4T P 110 150 Passat 1997 2000 + AQN 2324 V5 P 125 170 Golf, New Beetle 2000 2005 + AQY 1984 I4 P 85 116 Polo, Golf, Jetta, Passat 1998 2002 + AR 1300 F4 P 33 44 Type 1, 2 1973 1975 + ARC 1598 I4 P 88 120 Polo, Lupo, GX3 1997 2003 + ARD 1896 I4 D 44 60 Industrial Engine 2002 + ARG 1781 I4 P 92 125 Passat 1999 2000 + ARL 1896 I4T D 110 150 Golf, Jetta 2000 2006 + ARM 1595 I4 P 74 100 Passat 1999 2000 + ARR 1390 I4 P 77 105 Lupo 2001 2005 + ARX 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2004 + ARY 1781 I4T P 132 179 Polo, Golf, Jetta 2005 + ARZ 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2004 + AS 1600 F4 P 37 50 Type 1, 2 1973 1980 + ASU 1984 I4 P 88 120 Polo, Golf, Jetta, Passat 2001 + ASV 1896 I4T D 81 110 Polo, Golf, Jetta 1999 2006 + ASZ 1896 I4T D 96 131 Polo, Golf, Jetta, Sharan 2001 + AT 1800 F4 P 56 75 Type 4 1973 1974 + ATA 2799 I4T D 96 131 LT 1999 2002 + ATC 1781 I4T P 132 179 Polo, Golf, Jetta 2005 + ATD 1896 I4T D 74 101 Polo, Golf, Jetta, New Beetle 2000 + ATE 1000 I4 P 37 50 Polo 2000 + ATF 1984 I4 P 88 120 Polo, Golf, Jetta, Passat 2001 + ATJ 1896 I4T D 85 116 Passat 2000 2001 + ATL 1422 I3T D 66 90 Polo 2000 2001 + ATM 1984 I4 P 85 116 Polo, Golf, Jetta, Passat 1999 2005 + ATW 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2004 + AUA 1390 I4 P 55 75 Lupo, Polo, Golf, Jetta 2006 + AUB 1390 I4 P 59 80 Lupo, Polo, Golf, Jetta 2006 2009 + AUC 1000 I4 P 37 50 Lupo, Polo 2000 2004 + AUE 2792 V6 P 150 204 Golf, Bora 2000 2001 + AUF 2461 I5 P 76 102 Transporter 1996 2002 + AUG 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2004 + AUH 2799 I4T D 116 158 LT 2002 2006 + AUM 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2004 + AUQ 1781 I4T P 132 179 Polo, Golf, Jetta 2006 + AUR 1595 I4 P 74 99 Polo, Golf, Jetta, Passat 1997 2004 + AUY 1896 I4T D 85 116 Golf, Jetta, Sharan 2000 2005 + AUZ 1984 I4 P 88 120 Passat 1999 2000 + AVA 1984 I4 P 88 120 Polo, Golf, Jetta, Passat 2001 + AVB 1896 I4T D 74 101 Passat 1999 2005 + AVC 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2004 + AVF 1896 I4T D 96 131 Passat 2000 2005 + AVG 1896 I4T D 81 110 Passat 1996 2000 + AVM 1896 I4T D 63 86 Industrial Engine 2000 + AVQ 1896 I4T D 74 101 Touran 2003 2004 + AVT 2461 I5 P 85 116 Transporter 1999 1999 + AVY 1598 I4 P 88 120 Polo, Lupo, GX3 1997 2003 + AWD 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2004 + AWF 1984 I4 P 85 116 Polo, Golf, Jetta, Passat 1995 1999 + AWG 1984 I4 P 85 116 Polo, Golf, Jetta, Passat 1995 1999 + AWH 1595 I4 P 74 101 New Beetle 1999 2000 + AWL 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2004 + AWM 1781 I4T P 125 170 Jetta, New Beetle, Passat 2002 2005 + AWP 1781 I4T P 132 179 Polo, Golf, Jetta 2006 + AWT 1781 I4T P 110 150 Passat 2000 2005 + AWW 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2004 + AWX 1896 I4T D 96 131 Passat 2000 2005 + AWY 1198 I3 P 40 54 Polo 2002 2004 + AXD 2461 I5T D 96 131 Transporter 2004 + AXE 2461 I5T D 128 174 Touareg, Transporter 2004 + AXK 2792 V6 P 150 204 Transporter, Multivan 2000 2003 + AXL 2461 I5 P 75 102 Transporter 2001 2003 + AXP 1390 I4 P 55 75 Lupo, Polo, Golf, Jetta 2006 + AXR 1896 I4T D 74 101 Polo, Golf, Jetta, New Beetle 2001 + AXU 1390 I4 P 63 86 Polo 2002 2005 + AXW 1984 I4 P 110 150 Golf, Passat 2004 + AXX 1984 I4T P 147 200 Golf, Jetta, Passat 2005 + AYC 2461 I5 P 76 102 Transporter 1996 2002 + AYD 1595 I4 P 75 102 New Beetle 2000 + AYH 4921 V10T D 230 313 Touareg 2002 2006 + AYL 2792 V6 P 150 204 Sharan 2000 2008 + AYZ 1191 I3T D 45 61 Lupo 2000 2005 + AZH 1984 I4 P 85 116 Polo, Golf, Jetta, Passat 1999 2005 + AZJ 1984 I4 P 85 116 Polo, Golf, Jetta, Passat 1999 2005 + AZM 1984 I4 P 85 115 Passat 2000 2005 + AZQ 1198 I3 P 47 64 Polo 2001 2004 + AZX 2324 V5 P 125 170 Golf, New Beetle 2000 2005 + B 1600 F4 P 35 47 Type 1, 2 1967 1970 + BAD 1598 I4 P 81 110 Golf, Jetta, Bora 1998 2004 + BAG 1598 I4 P 85 116 Golf, Jetta, Eos, Passat 2002 2006 + BAN 5998 V12 P 309 420 Phaeton 2002 + BAR 4163 V8 P 257 349 Touareg 2006 + BAU 2496 V6T D 132 179 Passat 2003 2005 + BAY 1422 I3T D 55 75 Polo 2003 2005 + BBM 1198 I3 P 44 60 Polo 2007 + BBR 2461 I5T D 80 109 Industrial Engine 1992 + BBY 1390 I4 P 55 75 Lupo, Polo, Golf, Jetta 2006 + BBZ 1390 I4 P 59 80 Lupo, Polo, Golf, Jetta 2006 2009 + BCA 1390 I4 P 55 75 Lupo, Polo, Golf, Jetta 2006 + BCQ 2799 I4T D 116 158 LT 2002 2006 + BCT 2461 I5 D 40 54 Volkswagen Marine 2002 + BCU 2461 I5T D 74 101 Volkswagen Marine 2002 + BCV 2461 I5T D 108 147 Volkswagen Marine 2002 + BDB 3189 V6 P 184 250 Golf R32 2005 2009 + BDF 2792 V6 P 147 200 Golf, Jetta 2001 2005 + BDG 2496 V6T D 132 179 Passat 2003 2005 + BDH 2496 V6T D 120 163 Passat 2003 2005 + BDJ 1968 I4 D 51 69 Caddy 2004 2008 + BDK 1968 I4 D 55 75 Golf, Jetta 2003 2008 + BDN 3999 W8 P 202 275 Passat W8 2001 2004 + BDP 3999 W8 P 202 275 Passat W8 2002 2004 + BEK 1781 I4T P 132 179 Polo, Golf, Jetta 2005 + BEQ 1896 I4 D 33 45 Volkswagen Marine 2002 + BEU 1896 I4T D 43 58 Industrial Engine 2002 + BEW 1896 I4T D 74 101 Golf, Jetta, New Beetle 2003 + BFB 1781 I4T P 120 163 Passat 2003 + BFH 3189 V6 P 177 241 Golf R32 2004 2006 + BFQ 1595 I4 P 75 102 Golf, Jetta 2002 2006 + BFS 1595 I4 P 75 102 New Beetle 2002 + BGH 4163 V8 P 246 334 Phaeton 2003 2010 + BGJ 4163 V8 P 246 334 Phaeton 2003 2003 + BGL 1896 I4 D 37 50 Volkswagen Marine 2003 + BGM 1896 I4 D 29 39 Volkswagen Marine 2003 + BGP 2480 I5 P 110 150 Golf, Jetta, New Beetle (US) 2005 + BGQ 2480 I5 P 110 150 Golf, Jetta, New Beetle (US) 2005 + BGU 1595 I4 P 75 102 Touran 2003 2005 + BGW 1968 I4T D 100 136 Passat 2003 2005 + BHE 3189 V6 P 184 250 Golf R32 2005 2009 + BJB 1896 I4T D 77 105 Caddy 2004 + BJC 1896 I4T D 53 72 Industrial Engine 2003 + BJN 5998 V12 P 331 450 Touareg 2002 + BJX 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2005 + BKB 1781 I4T P 120 163 Passat 2003 + BKC 1896 I4T D 77 105 Golf, Jetta, Touran, Passat 2005 + BKD 1968 I4T D 103 140 Golf, Jetta, Touran, Passat 2008 + BKF 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2005 + BKG 1390 I4 P 66 90 Golf 2003 2005 + BKP 1968 I4T D 103 140 Golf, Jetta, Touran, Passat 2008 + BKS 2967 V6T D 165 224 Touareg 2004 2008 + BKV 1781 I4T P 110 150 Polo, Golf, Jetta, Passat 2001 2005 + BKW 4921 V10T D 230 313 Touareg 2003 2004 + BKY 1390 I4 P 55 75 Lupo, Polo, Golf, Jetta 2006 + BLE 4921 V10T D 230 313 Touareg 2004 + BLF 1598 I4 P 85 116 Golf, Jetta, Eos, Passat 2002 2006 + BLG 1390 I4TS P 125 170 Golf, Jetta, Touran, Passat 2007 + BLN 1390 I4 P 66 90 Golf 2003 2005 + BLP 1598 I4 P 85 116 Golf, Jetta, Eos, Passat 2002 2006 + BLS 1896 I4T D 77 105 Golf, Golf Plus, Touran, Caddy 2005 + BLT 1896 I4T D 96 131 Polo 2003 + BLV 3598 V6 P 206 280 Passat, Passat CC 2005 + BMD 1198 I3 P 40 54 Fox, Polo 2005 + BME 1198 I3 P 47 64 Polo 2004 2007 + BMF 3189 V6 P 54 73 Industrial Engine 2004 + BMJ 3189 V6 P 184 250 Golf R32 2005 2009 + BMK 2967 V6T D 165 224 Phaeton 2004 2007 + BML 3189 V6 P 177 241 Golf R32 2005 2006 + BMN 1968 I4T D 103 140 Golf, Jetta, Touran, Passat 2008 + BMR 1968 I4T D 103 140 Golf, Jetta, Touran, Passat 2008 + BMS 1422 I3T D 59 80 Polo Bluemotion 2006 + BMT 1896 I4T D 74 101 Polo 2006 + BMY 1390 I4TS P 133 181 Polo GTI 2007 + BNM 1422 I3T D 51 69 Polo 2005 + BNV 1422 I3T D 59 80 Polo 2005 2008 + BPF 3189 V6 P 184 250 Golf R32 2005 2009 + BPG 1984 I4 P 110 150 Golf, Passat 2004 + BPJ 1984 I4T P 125 170 Tiguan 2005 + BPR 2480 I5 P 110 150 Golf, Jetta, New Beetle (US) 2005 + BPS 2480 I5 P 110 150 Golf, Jetta, New Beetle (US) 2005 + BPZ 1896 I4T D 85 116 Passat 2008 + BRN 5998 V12 P 331 450 Phaeton 2002 + BRU 1896 I4T D 66 90 Golf, Touran 2004 2006 + BSE 1595 I4 P 75 102 Golf, Jetta, Touran, Caddy 2005 + BSF 1595 I4 P 75 102 Golf, Jetta, New Beetle, Caddy 2002 + BSP 2967 V6T D 165 224 Volkswagen Marine 2006 + BST 1968 I4 D 51 69 Caddy 2004 2008 + BSU 1896 I4T D 55 75 Caddy 2005 + BSW 1896 I4T D 77 105 New Beetle 2003 + BTB 1896 I4T D 110 150 Sharan 2005 2007 + BTT 5998 V12 P 331 450 Phaeton 2002 + BTW 2461 I5T D 121 165 Volkswagen Marine 2005 + BUB 3189 V6 P 184 250 Golf R32 2005 2009 + BUD 1390 I4 P 59 80 Lupo, Polo, Golf, Jetta 2006 + BUN 2967 V6T D 155 211 Touareg 2006 2009 + BVK 1896 I4T D 85 116 Sharan 2005 + BWA 1984 I4T P 147 200 Golf, Jetta, Passat 2005 + BWB 1422 I3T D 51 69 Polo 2006 + BWE 1984 I4T P 147 200 Golf, Jetta, Passat 2005 + BWF 4921 V10T D 230 313 Touareg 2006 2009 + BWS 3598 V6 P 220 299 Passat, Passat CC 2007 + BXE 1896 I4T D 77 105 Golf, Golf Plus, Jetta, Touran 2006 + BXF 1896 I4T D 66 90 Golf, Golf Plus, Touran 2006 2008 + BXJ 1896 I4T D 66 90 Golf, Golf Plus, Touran 2007 2009 + BXT 1896 I4 D 30 41 Industrial Engine 2006 + BYD 1984 I4T P 169 230 Golf GTI Pirelli 2008 + BZG 1198 I3 P 51 69 Polo 2007 + C 1600 F4 P 33 44 Type 2 1967 1970 + CA 1700 F4 P 49 66 Type 2 1971 1973 + CARA 2967 V6T D 171 232 Phaeton 2007 2008 + CAS 2967 V6T D 155 211 Touareg 2007 + CASA 2967 V6T D 176 239 Phaeton 2007 + CASB 2967 V6T D 176 239 Phaeton 2007 + CASC 2967 V6T D 176 239 Phaeton 2007 + CATA 2967 V6T D 165 224 Touareg 2009 + CAWB 1984 I4T P 155 211 Golf, Scirocco, Passat 2008 + CAXA 1390 I4S P 90 122 Golf 2007 + CAXC 1390 I4TS P 92 125 Golf, Jetta, Golf Plus 2007 + CAYA 1598 I4T D 55 75 Polo 2009 + CAYB 1598 I4T D 66 90 Polo 2009 + CAYC 1598 I4T D 77 105 Golf 2009 + CAYD 1598 I4T D 75 102 Caddy 2009 + CBAA 1968 I4T D 103 140 Golf, Jetta, Tiguan, Passat 2008 + CBAB 1968 I4T D 103 140 Golf, Jetta, Tiguan, Passat 2008 + CBDB 1968 I4T D 103 140 Golf, Jetta, Tiguan, Passat 2008 + CBFA 1984 I4T P 147 200 Golf, Jetta, Passat 2008 + CBH 1968 I4T D 47 64 Industrial Engine 2007 + CBJ 1968 I4T D 55 75 Industrial Engine 2007 + CBT 2480 I5 P 110 150 Golf, Jetta, New Beetle (US) 2007 + CBU 2480 I5 P 110 150 Golf, Jetta, New Beetle (US) 2007 + CBWA 4921 V10T D 258 351 Touareg R50 2007 + CBZ 1197 I4T P 77 105 Polo, Golf 2009 + CCSA 1595 I4 P 75 102 Golf, Jetta 2008 + CCTA 1984 I4T P 147 200 Golf, Jetta, Passat 2008 + CCZA 1984 I4T P 155 211 Golf, Scirocco, Passat 2008 + CDVA 3598 V6 P 191 260 Touareg, Phaeton 2008 + CDX 1896 I4T D 55 75 Volkswagen Marine 2007 + CE 1700 F4 P 46 62 Type 2 1972 1973 + CED 1781 I4T P 120 163 Passat 2003 + CEKA 1598 I4T D 85 116 Golf 2009 + CEM 4134 V8T D 257 349 Volkswagen Marine 2009 + CEXA 2967 V6T D 176 239 Phaeton 2008 2010 + CEZA 2967 V6T D 195 265 Volkswagen Marine 2007 + CFCA 1968 I4T D 132 179 Transporter 2008 + CFFB 1968 I4T D 103 140 Golf, Jetta, Tiguan, Passat 2008 + CFHC 1968 I4T D 103 140 Golf, Jetta, Tiguan, Passat 2008 + CFR 5998 V12 P 331 450 Touareg 2002 + CFWA 1199 I3T D 55 75 Polo 2009 + CG 2702 I4 D 48 65 LT 1976 1980 + CGGA 1390 I4 P 59 80 Lupo, Polo, Golf, Jetta 2006 + CH 1984 I4 P 55 75 LT 1975 1983 + CJ 2000 F4 P 52 70 Type 2 1975 1979 + CJAA 1968 I4T D 103 140 Golf, Jetta, Tiguan, Passat 2008 + CK 1471 I4 D 37 50 Golf, Passat 1976 1980 + CL 1984 I4 P 52 71 LT 1976 1983 + CP 2383 I6 D 55 75 LT 1978 1982 + CR 1600 I4 D 40 54 Golf, Jetta, Passat 1980 1982 + CS 1588 I4 D 37 50 T3 Transporter 1981 1987 + CT 1588 F4 P 37 50 T3 Transporter 1979 1982 + CU 2000 F4 P 52 70 T3 Transporter 1979 1982 + CV 2000 F4 P 52 70 T3 Transporter 1979 1982 + CY 1588 I4T D 51 69 Golf, Jetta, Passat 1981 1988 + CYP 1900 I4 P 67 90 Golf Cabrio 1996 2002 + CZ 1600 F4 P 35 47 Type 2 1979 1982 + D 1200 F4 P 25 34 Type 1 1965 2003 + DA 1600 I4 P 67 90 K 70 1970 1973 + DB 1600 I4 P 56 75 K 70 1970 1975 + DC 1800 I4 P 75 100 K 70 1973 1975 + DD 1781 I4 P 55 75 Golf, Vento, Passat 1990 1995 + DF 1900 F4 P 45 60 T3 Transporter 1982 1992 + DG 1900 F4 P 58 78 T3 Transporter 1982 1992 + DH 1900 F4 P 63 85 T3 Transporter 1983 1985 + DJ 2100 F4 P 84 112 T3 Transporter 1985 1992 + DL 2383 I6 P 66 90 LT 1982 1992 + DS 1800 I4 P 67 90 Passat, Santana 1982 1988 + DT 1600 I4 P 56 75 Passat, Santana 1983 1987 + DTA 1600 I4 P 52 70 Passat, Santana 1983 1987 + DV 2383 I6T D 75 102 LT 1982 1992 + DW 2383 I6 D 55 75 LT 1982 1992 + DX 1800 I4 P 84 112 Golf, Jetta, Scirocco 1983 1992 + DZ 1800 I4 P 84 112 Passat, Santana 1983 1984 + E 1300 F4 P 28 37 Type 1 1965 1970 + EE 1600 I4 P 61 82 Golf, Scirocco 1976 1977 + EF 1600 I4 P 61 82 Golf, Scirocco 1976 1977 + EG 1600 I4 P 82 110 Golf, Jetta, Scirocco 1976 1982 + EH 1500 I4 P 58 78 Golf, Scirocco 1977 1978 + EJ 1600 I4 P 62 83 Golf, Jetta, Scirocco 1979 1980 + EM 1600 I4 P 56 75 Golf, Jetta, Scirocco 1979 1982 + EN 1700 I4 P 58 78 Golf, Jetta, Scirocco 1980 1984 + EP 1300 I4 P 45 60 Passat, Santana 1981 1988 + EU 1300 I4 P 45 60 Passat, Santana 1983 1984 + EV 1800 I4 P 84 112 Golf, Jetta 1984 1987 + EW 1600 I4 P 56 75 Golf, Caddy, Scirocco 1983 1992 + EWA 1600 I4 P 52 70 Golf, Caddy, Scirocco 1983 1987 + EX 1800 I4 P 67 90 Golf Cabrio, Scirocco 1983 1992 + EY 1900 F4 P 43 57 T3 Transporter 1984 1989 + EZ 1600 I4 P 56 75 Golf, Jetta, Passat 1988 1991 + EZA 1600 I4 P 52 70 Golf, Jetta 1983 1987 + F 1300 F4 P 30 40 Type 1 1965 1970 + FA 1100 I4 P 37 50 Golf, Scirocco 1974 1979 + FB 1500 I4 P 56 75 Scirocco 1974 1974 + FD 1500 I4 P 63 85 Scirocco 1974 1975 + FF 1500 I4 P 48 65 Passat 1974 1974 + FH 1500 I4 P 52 70 Golf, Scirocco 1974 1975 + FJ 1100 I4 P 39 52 Golf, Scirocco 1974 1979 + FK 1500 I4 P 48 65 Golf, Scirocco 1974 1975 + FL 1500 I4 P 48 65 Passat 1975 1975 + FN 1600 I4 P 56 75 Golf, Scirocco 1976 1978 + FP 1600 I4 P 56 75 Golf, Scirocco 1975 1977 + FR 1600 I4 P 63 85 Jetta, Scirocco 1975 1984 + FS 1600 I4 P 54 72 Passat 1976 1979 + FT 1600 I4 P 52 70 Golf, Scirocco 1975 1977 + FV 1600 I4 P 52 70 Golf, Scirocco 1976 1979 + FY 1300 I4 P 40 54 Passat, Santana 1978 1983 + FZ 1300 I4 P 45 60 Passat, Santana 1978 1983 + GE 2000 F4 P 52 70 Type 2 1976 1979 + GF 1300 I4 P 45 60 Golf, Jetta, Scirocco 1979 1984 + GG 1100 I4 P 37 50 Golf, Jetta 1979 1984 + GH 1500 I4 P 48 65 Golf, Jetta, Scirocco 1979 1981 + GK 1300 I4 P 56 75 Polo, Derby 1982 1990 + GL 1043 I4 P 29 39 Polo, Derby 1981 1986 + GN 1100 I4 P 34 45 Golf 1983 1985 + GS 1300 I4 P 45 60 Golf, Jetta 1982 1984 + GT 1300 I4 P 43 58 Polo, Golf, Jetta, Scirocco 1983 1988 + GU 1800 I4 P 67 90 Golf, Jetta 1984 1991 + GW 1900 F4 P 67 90 T3 Transporter 1983 1985 + GX 1800 I4 P 67 90 Golf, Jetta 1984 1988 + GZ 1800 I4 P 84 112 Golf, Jetta 1984 1988 + H 1500 F4 P 32 44 Type 1, 2 1965 1971 + HA 895 I4 P 29 39 Polo, Derby 1975 1981 + HB 1093 I4 P 37 50 Polo, Derby 1975 1983 + HC 1093 I4 P 44 60 Polo 1975 1977 + HD 1093 I4 P 38 52 Polo, Derby 1975 1978 + HE 783 I4 P 25 34 Polo 1976 1978 + HH 1300 I4 P 45 60 Polo, Derby 1977 1983 + HJ 1300 I4 P 43 58 Polo, Derby 1977 1982 + HK 1300 I4 P 40 54 Polo, Golf, Jetta, Scirocco 1983 1986 + HM 1600 I4 P 56 75 Golf, Jetta 1983 1988 + HN 1600 I4 P 56 75 Golf, Jetta 1983 1984 + HN 1600 I4 P 52 70 Golf, Caddy, Scirocco 1983 1989 + HP 1994 I5 P 85 116 Passat, Santana 1983 1988 + HS 2400 I6 P 63 84 LT 1983 1985 + HT 1800 I4 P 78 105 Golf 1985 1985 + HV 1800 I4 P 67 90 Golf, Jetta 1984 1987 + HW 1300 I4 P 37 50 Polo, Golf, Jetta 1983 1984 + HY 2226 I5 P 100 136 Passat 1984 1988 + HZ 1043 I4 P 37 50 Polo, Golf, Jetta 1985 1992 + JB 1500 I4 P 52 70 Golf, Jetta, Caddy, Scirocco 1977 1984 + JH 1800 I4 P 71 85 Golf, Caddy, Scirocco 1983 1992 + JJ 1800 I4 P 84 112 Golf, Jetta, Scirocco 1982 1984 + JK 1588 I4 D 40 54 Golf, Jetta, Caddy, Passat 1982 1991 + JN 1800 I4 P 67 90 Passat, Santana 1983 1988 + JP 1600 I4 D 40 54 Golf, Jetta 1983 1991 + JR 1588 I4T D 51 69 Golf, Jetta 1983 1991 + JS 1994 I5 P 85 116 Passat, Santana 1984 1988 + JT 2226 I5 P 89 121 Passat Syncro 1985 1988 + JU 1600 I4 P 56 75 Passat, Santana 1983 1987 + JV 1800 I4 P 67 90 Passat, Santana 1983 1987 + JX 1588 I4T D 51 69 T3 Transporter 1985 1992 + K 1500 F4 P 34 45 Type 3 1965 1973 + KM 2200 I5 P 78 105 Passat, Santana 1982 1984 + KR 1791 I4 P 102 139 Golf, Jetta, Passat, Corrado 1985 1992 + KT 1800 I4 P 84 112 Golf, Jetta, Scirocco 1983 1991 + KV 2226 I5 P 98 133 Passat 1985 1988 + KX 2226 I5 P 88 120 Passat 1985 1988 + KY 1716 I4 D 42 57 T3 Transporter 1986 1992 + L 1500 F4 P 30 40 Type 1 1966 1970 + M 1500 F4 P 31 41 Type 3 1965 1973 + ME 1588 I4 D 40 54 Golf, Jetta, Caddy 1988 1992 + MF 1588 I4T D 51 69 Golf, Jetta 1988 1991 + MH 1300 I4 P 40 54 Polo, Derby, Golf, Jetta 1985 1988 + MN 1300 I4 D 33 45 Polo, Polo Coupe 1985 1990 + MV 2000 F4 P 71 95 T3 Transporter 1985 1992 + N 1500 F4 P 39 52 Type 3 1965 1973 + NU 1300 I4 P 37 50 Polo, Golf, Jetta 1985 1987 + NZ 1300 I4 P 37 50 Polo 1985 1987 + NZ 1300 I4 P 40 54 Polo, Golf, Jetta 1987 1992 + P 1600 F4 P 37 50 Type 3 1965 1973 + PB 1800 I4 P 84 112 Golf, Jetta, Passat 1987 1991 + PD 1800 I4 P 49 66 Transporter 1990 1992 + PF 1800 I4 P 80 107 Golf, Jetta, Passat 1988 1990 + PG 1781 I4S P 154 209 Golf Rally, Limited 1988 1993 + PL 1800 I4 P 96 129 Golf, Jetta, Scirocco 1986 1992 + PN 1600 I4 P 52 70 Golf, Jetta 1987 1992 + PP 1600 I4 P 52 70 Passat 1987 1988 + PY 1272 I4S P 85 116 Polo Coupe GT G40 1986 1994 + R 1600 F4 P 40 54 Type 3 1963 1965 + RA 1588 I4T D 59 80 Golf, Jetta, Passat 1988 1990 + RD 1800 I4 P 80 107 Golf, Jetta 1985 1988 + RE 1600 I4 P 54 72 Golf, Scirocco 1986 1990 + RF 1600 I4 P 54 72 Golf, Jetta, Passat 1988 1989 + RG 1800 I4 P 80 107 Golf, Jetta 1986 1987 + RH 1800 I4 P 63 84 Golf, Jetta 1987 1988 + RL 1600 I4 P 54 72 Passat 1986 1988 + RM 1800 I4 P 65 87 Passat 1986 1988 + RP 1791 I4 P 66 90 Golf, Jetta, Passat 1987 1992 + RV 1800 I4 P 78 105 Golf, Jetta 1987 1991 + SB 1588 I4T D 59 80 Golf, Jetta, Passat 1989 1993 + SP 1900 F4 P 55 74 T3 Transporter 1986 1988 + SR 2100 F4 P 65 87 T3 Transporter 1986 1992 + SS 2100 F4 P 69 92 T3 Transporter 1989 1992 + T 1600 F4 P 40 54 Type 3 1965 1973 + U 1600 F4 P 40 54 Type 3 1967 1973 + V 1700 F4 P 51 68 Type 4 1968 1969 + W 1700 F4 P 60 80 Type 4 1969 1973 + WE 2144 I5 P 79 107 Passat, Santana 1981 1983 + WL 1700 I4 P 56 75 Iltis 1979 1980 + WN 1921 I5 P 85 116 Passat, Santana 1980 1983 + WP 1600 I4 P 48 65 Passat, Santana 1979 1982 + WV 1600 I4 P 56 75 Passat, Santana 1981 1983 + WVA 1600 I4 P 52 70 Passat, Santana 1981 1983 + WY 1600 I4 P 56 75 Passat, Santana 1979 1983 + WZ 1600 I4 P 56 75 Passat 1979 1980 + YG 1600 I4 P 63 85 Passat 1975 1980 + YH 1600 I4 P 63 85 Passat 1975 1980 + YJ 1500 I4 P 56 75 Passat 1974 1975 + YK 1600 I4 P 63 85 Passat 1977 1979 + YN 1600 I4 P 56 75 Passat 1975 1981 + YP 1600 I4 P 63 85 Passat, Santana 1975 1982 + YS 1600 I4 P 82 110 Passat 1976 1980 + YT 1600 I4 P 52 70 Passat 1975 1979 + YU 1600 I4 P 52 70 Passat 1975 1979 + YX 1700 I4 P 56 75 Iltis 1978 1985 + YY 1600 I4 P 52 70 Passat 1979 1981 + Z 1700 F4 P 51 68 Type 4 1969 1973 + ZA 1300 I4 P 40 54 Passat 1972 1978 + ZB 1500 I4 P 56 75 Passat 1972 1974 + ZC 1500 I4 P 63 85 Passat 1972 1975 + ZF 1300 I4 P 45 60 Passat 1972 1978 \ No newline at end of file diff --git a/Data/jlr_ecu_group_handler.py b/Data/jlr_ecu_group_handler.py new file mode 100644 index 0000000..7eaba66 --- /dev/null +++ b/Data/jlr_ecu_group_handler.py @@ -0,0 +1,31 @@ +import os + +# Obtém o diretório do script atual (onde este ficheiro .py está) +script_dir = os.path.dirname(os.path.abspath(__file__)) +# Constrói o caminho para o ficheiro 'JLR ECU.txt' relativo a este script +JLR_ECU_LIST_FILE = os.path.join(script_dir, 'JLR ECU.txt') + +def load_jlr_ecu_list(): + """Carrega a lista de famílias de ECU JLR a partir do ficheiro JLR ECU.txt.""" + jlr_ecu_set = set() + try: + with open(JLR_ECU_LIST_FILE, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if line and not line.startswith('#'): # Ignora linhas vazias e comentários + jlr_ecu_set.add(line) + except FileNotFoundError: + print(f"Aviso: O ficheiro {JLR_ECU_LIST_FILE} não foi encontrado.") + except Exception as e: + print(f"Erro ao ler o ficheiro {JLR_ECU_LIST_FILE}: {e}") + return jlr_ecu_set + +if __name__ == '__main__': + # Teste rápido para verificar se o carregamento funciona + jlr_list = load_jlr_ecu_list() + if jlr_list: + print(f"Carregadas {len(jlr_list)} famílias de ECU JLR:") + for ecu in sorted(list(jlr_list)): + print(f"- {ecu}") + else: + print("Nenhuma família de ECU JLR carregada ou ficheiro não encontrado.") diff --git a/Data/vag_ecu_group_handler.py b/Data/vag_ecu_group_handler.py new file mode 100644 index 0000000..2946674 --- /dev/null +++ b/Data/vag_ecu_group_handler.py @@ -0,0 +1,57 @@ +import os + +# O ficheiro Grupo VAG ECU.txt deve estar na mesma pasta que este script. +DATA_FILE_PATH = os.path.join(os.path.dirname(__file__), 'Grupo VAG ECU.txt') + +def load_vag_ecu_list(): + """ + Carrega a lista de famílias de ECU do Grupo VAG a partir do ficheiro Grupo VAG ECU.txt. + + Retorna: + set: Um conjunto de strings, onde cada string é uma família de ECU do Grupo VAG. + Retorna um conjunto vazio se o ficheiro não for encontrado ou ocorrer um erro. + """ + vag_ecus = set() + if not os.path.exists(DATA_FILE_PATH): + print(f"Erro: Ficheiro de dados não encontrado em {DATA_FILE_PATH}") + return vag_ecus + + try: + # Tentar ler com utf-8 primeiro, que é mais universal + with open(DATA_FILE_PATH, mode='r', encoding='utf-8') as file: + for line in file: + stripped_line = line.strip() + if stripped_line: # Adicionar apenas se a linha não estiver vazia após remover espaços + vag_ecus.add(stripped_line) + except UnicodeDecodeError: + # Se utf-8 falhar, tentar com 'latin-1' como fallback + try: + vag_ecus.clear() # Limpar o conjunto antes de tentar novamente + with open(DATA_FILE_PATH, mode='r', encoding='latin-1') as file: + for line in file: + stripped_line = line.strip() + if stripped_line: + vag_ecus.add(stripped_line) + except Exception as e_latin1: + print(f"Erro ao ler o ficheiro {DATA_FILE_PATH} com latin-1: {e_latin1}") + return set() # Retornar conjunto vazio em caso de erro + except Exception as e_utf8: + print(f"Erro ao ler o ficheiro {DATA_FILE_PATH} com utf-8: {e_utf8}") + return set() # Retornar conjunto vazio em caso de erro + + return vag_ecus + +if __name__ == '__main__': + # Exemplo de utilização: + vag_ecu_families = load_vag_ecu_list() + if vag_ecu_families: + print(f"Carregadas {len(vag_ecu_families)} famílias de ECU do Grupo VAG.") + # Imprimir algumas para exemplo (se houver) + count = 0 + for ecu in vag_ecu_families: + print(ecu) + count += 1 + if count >= 5: + break + else: + print("Nenhuma família de ECU do Grupo VAG carregada.") diff --git a/Data/vw_engine_data_handler.py b/Data/vw_engine_data_handler.py new file mode 100644 index 0000000..5d7a34d --- /dev/null +++ b/Data/vw_engine_data_handler.py @@ -0,0 +1,91 @@ +import csv +import os + +# O ficheiro VW_Engines.txt deve estar na mesma pasta que este script. +DATA_FILE_PATH = os.path.join(os.path.dirname(__file__), 'VW_Engines.txt') + +def load_vw_engine_data(): + """ + Carrega os dados dos motores Volkswagen a partir do ficheiro VW_Engines.txt. + + Retorna: + list: Uma lista de dicionários, onde cada dicionário representa um motor + e contém as suas especificações. Retorna uma lista vazia se o + ficheiro não for encontrado ou ocorrer um erro. + """ + engines = [] + if not os.path.exists(DATA_FILE_PATH): + print(f"Erro: Ficheiro de dados não encontrado em {DATA_FILE_PATH}") + # Poderia levantar uma exceção aqui ou retornar uma lista vazia + # dependendo de como a aplicação principal deve lidar com isso. + return engines + + try: + with open(DATA_FILE_PATH, mode='r', encoding='utf-8') as file: # Tente utf-8 primeiro + # Usar csv.reader com delimitador de tabulação + reader = csv.reader(file, delimiter='\t') + + try: + header = next(reader) # Obter a linha de cabeçalho + except StopIteration: + print(f"Erro: Ficheiro de dados {DATA_FILE_PATH} está vazio ou não contém cabeçalho.") + return engines + + # Limpar nomes de cabeçalho (remover possíveis BOM ou espaços extra) + header = [h.strip() for h in header] + + for row_number, row in enumerate(reader, 1): # Começa a contagem de linhas de dados em 1 + if not row or len(row) != len(header): # Pular linhas vazias ou malformadas + # print(f"Aviso: Linha {row_number+1} ignorada devido a formato incorreto (esperados {len(header)} campos, obteve {len(row)}): {row}") + continue + + engine_data = {} + for i, column_name in enumerate(header): + value = row[i].strip() + # Tentar converter campos numéricos + if column_name in ['Size', 'kW', 'HP', 'From', 'To']: + try: + engine_data[column_name] = int(value) + except ValueError: + engine_data[column_name] = value # Manter como string se a conversão falhar + else: + engine_data[column_name] = value + engines.append(engine_data) + + except UnicodeDecodeError: + # Se utf-8 falhar, tentar com 'latin-1' que é comum em alguns ambientes Windows + try: + engines = [] # Resetar a lista de motores + with open(DATA_FILE_PATH, mode='r', encoding='latin-1') as file: + reader = csv.reader(file, delimiter='\t') + header = [h.strip() for h in next(reader)] + for row in reader: + if not row or len(row) != len(header): continue + engine_data = {} + for i, column_name in enumerate(header): + value = row[i].strip() + if column_name in ['Size', 'kW', 'HP', 'From', 'To']: + try: engine_data[column_name] = int(value) + except ValueError: engine_data[column_name] = value + else: engine_data[column_name] = value + engines.append(engine_data) + except Exception as e_latin1: + print(f"Erro ao ler ou processar o ficheiro de dados com latin-1: {e_latin1}") + return [] # Retornar lista vazia em caso de erro + + except Exception as e_utf8: + print(f"Erro ao ler ou processar o ficheiro de dados com utf-8: {e_utf8}") + return [] # Retornar lista vazia em caso de erro + + return engines + +if __name__ == '__main__': + # Exemplo de utilização: + vw_data = load_vw_engine_data() + if vw_data: + print(f"Carregados {len(vw_data)} registos de motores.") + # Imprimir os primeiros 5 registos como exemplo + for i, engine in enumerate(vw_data[:5]): + print(f"Registo {i+1}: {engine}") + else: + print("Nenhum dado de motor carregado.")