рдЗрд╕ рд╡рд░реНрд╖ рдХреЗ рд▓рд┐рдП (рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИ) рдореИрдВрдиреЗ рдЕрдкрдиреА рдиреМрдХрд░реА рдмрджрд▓ рд▓реА рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВрдиреЗ рдкреАрдПрдЪрдкреА рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (рдореИрдВ рдмрд╣реБрдд рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реВрдВ)ред рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдиреЗ рдореБрдЭреЗ рдЕрдЬрдЧрд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ (рдФрд░ рдЗрд╕рдХреА рд╢рдХреНрддрд┐ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ) рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдПрдХ рд░рд╡рд┐рд╡рд╛рд░ рдХреА рд╢рд╛рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрд╛рда рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдЖрдЬ рдореИрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдпреБрд╡рд╛ рдУрдкрдирд╕реЛрд░реНрд╕-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд┐рдЯреНрдЯреЗ (" рдпрдореНрдореА ", рдлреНрд░рд╛рдВрд╕реАрд╕реА рд╕реЗ рдЕрдиреБрд╡рд╛рджрд┐рдд) рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп (рдХреЛрдИ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдирд╣реАрдВ) рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдСрдлрд┐рд╕ рдкреИрдХреЗрдЬ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
рдорд┐рдЯреНрдЯ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рд╕реНрд╡рд░реВрдкреЛрдВ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдкрд╛рда рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдореИрдВ рдЖрдЧреЗ рдЬрд╛рдирд╛ рдФрд░ рдЕрд╕рдВрднрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛: рдкрд╛рд░реНрд╕рд░ рдХреЛ рдкреНрд░рд╛рд░реВрдкрдг (рдХрдо рд╕реЗ рдХрдо рдиреНрдпреВрдирддрдо) рдкрдврд╝реЗрдВред рдкреАрдбрд╝рд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╢рд╛рдо рдФрд░ рдмреНрдпрд╛рдЬ (рдФрд░ рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╕рдВрдпреБрдХреНрдд рд╡рд┐рдХрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрднрд╡рдд: рд╕рдВрднрд╡ рдорджрдж) рдореЗрдВ рд╕рдордп рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдХрд╛рд░реНрдп рдХрдард┐рди рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рдпреЗ рд╕рд┐рд░реНрдл рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП, рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╢реМрдХ рд╣реИрдВред
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЕрдЬрдЧрд░ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ PHP рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИ рдФрд░, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд PHP рдореЗрдВ рдкреБрд░рд╛рдиреЗ "рд╢рд┐рд▓реНрдк" рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд┐рд╕реА рднреА рдмрдбрд╝реЗ рдмреНрд▓реЙрдХ рдХреЛ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦреБрдж рдХреЛ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдордирд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред Miett рдбреЗрдЯрд╛ рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рдорд╛рдВрдЧ рдкрд░ рдкрдврд╝рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд░реНрдб рдЦреБрдж рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд░реИрдо рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рд▓реНрдХрд╛ рдФрд░ рдирд┐рдВрджрдиреАрдп рдмрдирд╛рддрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореИрдВ рд╢реБрд░реБрдЖрддреА рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдФрд░ рд╕рдВрдХреАрд░реНрдг рдЧрд░реНрджрди рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕реЗ рдЖрдЧреЗ рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдЧреЗ рдмрдврд╝реЗрдВ?
рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдЧреЗ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ PHP рдореЗрдВ рдкреБрд░рд╛рдиреЗ рд▓реЗрдЦ рдФрд░ cfb рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛
рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдФрд░ рдмрд╛рдж рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рдХреА рдЬрд╛рдПрдВрдЧреА), рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдПрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрд╛рдардХ рд╣реЛрддрд╛ рд╣реИред рдЕрдм рдХрдВрдкрд╛рдЙрдВрдб рдлрд╛рдЗрд▓ рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓ рдлреЙрд░реНрдореЗрдЯ рдкрд░ рдПрдХ рд░реАрдбрд░ рд╣реИ, рдЬреЛ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдСрдлрд┐рд╕ рдлрд╛рдЗрд▓реНрд╕ рдХреЗ рдбреЗрдЯрд╛ рдФрд░ рдбреАрдУрд╕реА (рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд░реНрдб) рдХреЗ рд▓рд┐рдП рдПрдХ рд░реИрдкрд░ рд╣реИред рдПрдХреНрд╕рдПрд▓рдПрд╕ рдФрд░ рдкреАрдкреАрдЯреА рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕реАрдПрдлрдмреА рдореЗрдВ рджреЛ рдореБрдЦреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ - рд░реАрдбрд░ рдФрд░ рдбрд╛рдпрд░реЗрдХреНрдЯреНрд░реАрдПрдВрдЯреНрд░реА, рдЬрд┐рд╕ рдкрд░ рдмрд╛рдХреА "рдкрд╛рдардХ" рдмрдиреЗ рд╣реЛрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ "рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ" рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реАрдПрдлрдмреА рд╕реНрдЯреЛрд░реЗрдЬ рдмрдирд╛рддреЗ рд╣реИрдВред рд░реАрдбрд░ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдирд╛рдо рдФрд░ рдирдВрдмрд░ рджреЛрдиреЛрдВ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░реВрдЯ рдПрдВрдЯреНрд░реА ("рд░реВрдЯ рдПрдВрдЯреНрд░реА") рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЕрдЧреНрд░реЗрд╖рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАрдЗрдВрдЯреНрд░реА рдХреНрд▓рд╛рд╕ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдорд┐рдиреА рдПрдлрдПрдЯреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рдорд╛рдирдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред
DirectoryEntry рдПрдХ рдиреНрдпреВрдирддрдо рдлрд╝рд╛рдЗрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ: рдкрдврд╝рд╛ ([рдЖрдХрд╛рд░]), рд╕реАрдХ (рдСрдлрд╕реЗрдЯ, [whence]) рдФрд░ рдмрддрд╛рдУ ()ред рдпрд╣ рдлрд┐рд░ рд╕реЗ "рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ" рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдЬрдЧрд░ рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВред рдЖрдк рдЕрднреА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рд░реАрдб () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрд╛рдЗрдЯреНрд╕ рдкрдврд╝рдиреЗ рдкрд░ рдЖрдкрдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рднрдкреНрд░рдж рд╕рдорд╛рдзрд╛рди рдорд┐рд▓реЗрдЧрд╛ рдЬреЛ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд┐рдЯреНрд╕ рдирд╣реАрдВ рдкрдврд╝реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рдПрдВ / рджрд╛рдПрдВ рднрд╛рдИ-рдмрд╣рди рдФрд░ рдмрдЪреНрдЪреЗ "рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ" рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рд╕реАрдПрдлрдмреА рдкреЗрдбрд╝ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╡рд┐рдиреАрдд рдмрдирд╛рддрд╛ рд╣реИред
DocTextReader рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЖрдк CFB рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, PHP рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╣рдо рд░реИрдо рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдПрдХ рдЫреЛрдЯреА рдорд╛рддреНрд░рд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рд▓рдЧрд╛рддрд╛рд░ рдбреЙрдХреНрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдЕрддрд┐рд░рд┐рдХреНрдд DirectoryEntry get_byte, get_short рдФрд░ get_long рдореЗрдердб рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд╛рди рд╕реЗ рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВред 0 / 1Table рдФрд░ WordDocument рдХреЗ рдореБрдЦреНрдп "рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ" рдХреЛ рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд░рд┐рддреНрд░ рд╣реИ; рднрд╡рд┐рд╖реНрдп рдореЗрдВ, DocTextReader рдореЗрдВ рдПрдХ рдЪрдпрдирд┐рдд рд╕реНрдерд┐рддрд┐ рд╕реЗ рджрд┐рдП рдЧрдП рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХреАрдХреГрдд рддрд░реАрдХреЗ рд╣реЛрдВрдЧреЗ, рдФрд░ рд╕рдВрднрд╡рддрдГ рдлрд╝рд╛рдЗрд▓ рд╡рд░реНрдЧ рдХреЗ рдХреБрдЫ рдЕрдиреНрдп рдХрд╛рд░реНрдпред
рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред
from doc . text import DocTextReader
doc = DocTextReader ( 'parus.doc' )
root_entry = doc . root_entry
word_document = doc . get_entry_by_name ( 'WordDocument' )
one_table = root_entry . child . left_sibling . left_sibling
fc_clx = self . word_document . get_long ( 0x01a2 )
one_table . seek ( fc_clx )
print one_table . read ( 1 )
print one_table . tell ( ) # fc_clx + 1
print doc . read ( )
PS рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдФрд░ Miette рдирд┐рд░рд╛рд╢ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред Github рдкрд░ рдмрдиреЗ рд░рд╣реЗрдВ :)