рдореБрдЭреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХреЛрдб рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред
рдпрд╣ рдкреЛрд╕реНрдЯ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХреЛрдб рдкреНрд░рд▓реЗрдЦрди рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
рдПрдХ рдЙрдкрд▓рдмреНрдзрд┐ рд╣реИред
рдПрдХ рддрд░рдл, рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рд╕рд╣реА рд╣реИ, рджреВрд╕рд░реА рддрд░рдл, рдореБрдЭреЗ рдЙрдирдореЗрдВ рдмрд╣реБрдд рд╕рдордЭ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд┐рддрд╛рдмреЗрдВ рдореИрдВ рдкрдврд╝рддрд╛ рд╣реВрдВ, рд╡реЗ рдЗрд╕ рдмрд┐рдВрджреБ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рд░рдгреЛрдВ рдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ, рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдЖрджрд┐ рдХреЗ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
рдореИрдВрдиреЗ рд╕рдВрдпреЛрдЧ рд╕реЗ рд╢рдмреНрдж "рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди" рд▓рд┐рдЦрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓рдЧрднрдЧ рд╡реИрд╕рд╛ рд╣реА рд╣реИ
std::map<std::string, Person*>mapPPersonsNames
рдореБрдЭреЗ рдРрд╕реЗ рд╡рд┐рдзрд░реНрдореА рдЬреАрд╡рди рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдХреИрд╕реЗ рд╣реБрдИ?
рдЬрдм рдореИрдВ рдЫреЛрдЯрд╛ рдерд╛, рдореИрдВрдиреЗ рдХреНрд╡рд┐рдХ рдмреЗрд╕рд┐рдХ рдФрд░ REXX рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдирд╛ рд╕реАрдЦрд╛ред рдореИрдВ рд╡реИрд░рд┐рдПрдмрд▓ рдП, рдПрдП, рдПрдХреНрд╕ 1 рдирд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддрд┐рд░рд╕реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдлрд┐рд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд▓реЗ рджрд┐рди рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ред рдореИрдВрдиреЗ рдЪрд░ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рд╕рд╛рд░реНрдердХ рд░реВрдк рд╕реЗ рдирд╛рдо рджреЗрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреИрд╕реЗ, рдЙрддреНрддрд░, file_countред рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВрдиреЗ рдУрдПрд╕ / 2 рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЯреЛ рд╕реНрд╡рд┐рдЪрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдПрдкреАрдЖрдИ рд╕реАрдЦрдирд╛ рдерд╛ рдФрд░ рдпрд╣рд╛рдБ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡-рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЛрдб рдХреА рднрд╛рд╡рдирд╛ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдерд╛ред рдУрдПрд╕ / 2 рдПрдкреАрдЖрдИ рдореЗрдВ рдЪрд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд╛рдо рдЗрддрдиреЗ рд╡рд┐рд╕реНрддреГрдд рд╣реИрдВ рдХрд┐ рдХрднреА-рдХрднреА рд╡рд┐рд╡рд░рдг рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛ред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ рдХрд┐ рдХреНрдпреЛрдВ рди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рд╕реАрдзреЗ рдХреЛрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА рдЬрд╛рдП?
рдЖрдкрдХреЛ рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рд╣реИред рдореИрдВ рджреЛ рдХрд╛рдлреА рд╕реНрд╡рддрдВрддреНрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреЗрдЦрддрд╛ рд╣реВрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдпреЗ рдпрд╛ рдЕрдиреНрдп рддрддреНрд╡ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рд╡реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ рдпрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕реБрдзрд╛рд░реЗрдВред рдФрд░ рдпрд╣ рд╕рдВрдпреБрдХреНрдд рд╡рд┐рдХрд╛рд╕ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗред рдПрдХ рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдкреНрд░рддреАрдХреЛрдВ, рдХрдХреНрд╖рд╛рдУрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред
рдореИрдВ рд╕реНрд╡-рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЛрдб рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рджреЛрд╣рд░реЗ рдХрд╛рдо рдкрд░ рд╕рдордп рдирд╣реАрдВ рдмрд┐рддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ред
рдореИрдВ рдЕрдкрдиреЗ рдореВрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдЕрдкрдиреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддрд╛ рд╣реВрдВред рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдмреНрд░реЗрдХ рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ, рдФрд░ рдорд╛рддреНрд░рд╛ рд╕рднреНрдп рд╣реИред рдореБрдЭреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд░рд┐рдлрд▓реЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмреЗрд╡рдЬрд╣ рдирд╛рдо рджреЗрддреЗ рд╣реИрдВ, рддреЛ рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред
... рдпрд╣рд╛рдБ рд▓реВрдк рдХрд╛рдЙрдВрдЯрд░ i_1 рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рд╣рд░реА рд▓реВрдк i ...
рдзрд┐рдХреНрдХрд╛рд░ рд╣реИ! i_1 рдкрдВрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рд╕реНрддрдВрдн рджреНрд╡рд╛рд░рд╛ рд╣реИ ...
рдХреНрдпрд╛ рдпрд╣ рд╕реНрдерд┐рддрд┐ рдкрд░рд┐рдЪрд┐рдд рд╣реИ? рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ uiRowCount рдФрд░ uiColCount рдкрд░ рд▓реВрдк рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрди рдЪрд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЕрд░реНрде рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдмрдпрд╛рди рд╣реИ рдХрд┐ рд╕реНрд╡-рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХреЛрдб рдореЗрдВ рдЖрдкрдХреЛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдХреЛрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрдард┐рди рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдкреБрд░рд╛рдиреЗ рдлреБрдЯрдХреНрд▓реЙрде рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕реАрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЯреЙрд▓рд╕реНрдЯреЙрдп рдХреЗ рдЙрдкрдиреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рдПред
рдПрдХ рдкреБрд░рд╛рдирд╛ рдлреБрдЯрдХрд▓реЙрде рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдВрджрд┐рдЧреНрдз рдЦреБрд╢реА рд╣реИред рдпрд╣ рдкрдардиреАрдпрддрд╛ рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рддреНрд░реБрдЯрд┐ рд╕реБрдзрд╛рд░ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рд╣рд╛рдЬ рд╕реЗ рдлреИрдХреНрдЯрд░рд╛рдЗрдЬреНрдб рдХреЛрдб рдмреЗрд╣рддрд░ рд╣реИред рдХрд╛рд░реНрдп - рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдЕрдЧрд▓рд╛ рд╕реНрддрд░ред рдирд╛рдо рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдФрд░ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдХрдИ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди рдзреАрдорд╛ рдХрд░ рджреЗрддреЗ рд╣реИрдВ? рдЗрдирд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЙрд╕реА рд╕рдордп, рдореЗрд░реЗ рдкрд╛рд╕ рд╕реМ рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдФрд░ рдкрдардиреАрдпрддрд╛ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдХреНрдпрд╛?
рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИред рдкреВрд░реЗ рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгреА рднреА рдХреНрдпреЛрдВ? рд╕рднреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рдзрдирд╛рддреНрдордХ рдкреГрд╖реНрдарднреВрдорд┐ рди рд╣реЛред рдПрдХ рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЬрдм рдореИрдВ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдПрдХ рд╕рдВрдХреЗрдд рдкрд░ рдЖрдпрд╛ рдерд╛ "рдХреЛрдб рдХреЛ рджреЗрдЦреЛ, рд╕рдм рдХреБрдЫ рд╣реИред" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдЖрд░рдкреАрдПрдо рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рдЦреЛрдЬрдиреЗ рдФрд░ рд╣реЗрдбрд░ рдФрд░ рдХреЛрдб рдореЗрдВ рд╣реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рдлрдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рднреАред grep -R рдХреЛ рдЕрднреА рддрдХ рд░рджреНрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдкреНрд░рд┐рдп рд╕реНрдерд┐рддрд┐, рд╕рд╣реА? рдЙрд╕реА рд╕рдордп, рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рдХреА рдЬрд╛рдПрдЧреА рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдзрдиреНрдпрд╡рд╛рдж рдХрд╣реЗрдЧрд╛ред рд╡реИрд╕реЗ, рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдпрд╛ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред рдпрджрд┐ рдЬрдЯрд┐рд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛рдПрдВ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ?
рдпреБрдкреАрдбреАрд╕рдореБрджрд╛рдп рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рджреЗрддрд╛ рд╣реВрдВред struct HGenStuff: public std::unary_function<const std::pair<wxString,int>&, void>{ std::map<wxString, DevDesc*>& mapDevs; std::map<wxString, LogDesc*>& mapLogs; HandlerLibData & hData; HGenStuff(std::map<wxString, DevDesc*>&_mapDevs, std::map<wxString, LogDesc*>&_mapLogs,HandlerLibData&_hData): mapDevs(_mapDevs), mapLogs(_mapLogs), hData(_hData) {}; inline void operator()(const std::pair<wxString,TypeFlag>&paInp){ if(paInp.second.isSet(HandlerLibData::DEVICE)){ std::map<std::string,DevInterface*>::iterator itDev; if((itDev = hData.HLI.mapDevs.find(std::string(paInp.first.mb_str())))!=hData.HLI.mapDevs.end()){ mapDevs.insert(std::make_pair(paInp.first, new DevDesc(itDev->second, &hData))); } } if(paInp.second.isSet(HandlerLibData::LOGGER)){ std::map<std::string,Logger *>::iterator itLog; if((itLog = hData.HLI.mapLogs.find(std::string(paInp.first.mb_str())))!=hData.HLI.mapLogs.end()){ mapLogs.insert(std::make_pair(paInp.first, new LogDesc(itLog->second, &hData))); } } } }; struct HandlerActivator: public std::unary_function<HandlerLibData&, void>{ HandlerBroker *pHB; std::map<wxString, DevDesc*>mapDevs; std::map<wxString, LogDesc*>mapLogs; std::map<wxString,std::map<wxString,TypeFlag> > &toUse; bool &bSuccess; HandlerActivator(HandlerBroker *_pHB, std::map<wxString,std::map<wxString,TypeFlag> > &_toUse, bool &_bSuccess):pHB(_pHB), toUse(_toUse), bSuccess(_bSuccess){ }; inline void operator()(HandlerLibData&inp){ std::map<wxString,std::map<wxString,TypeFlag> >::iterator it(toUse.find(inp.md5)); if(it != toUse.end()) std::for_each(it->second.begin(),it->second.end(),HGenStuff(mapDevs,mapLogs , inp)); } ~HandlerActivator(){ if (!pHB->checkLock(mapDevs)) bSuccess = wxYES == wxMessageBox(wxT("Some locks seam to be incompatible. Shall we use new device handlers selection?\n"),wxT("Confirm"), wxYES_NO | wxICON_EXCLAMATION ); if(bSuccess ) pHB->setAvailHandlers(mapDevs, mapLogs); }; }; bool MyFrame::pocessHandlers(std::map<wxString, std::map<wxString,TypeFlag> > &mapHandlersToUse){ std::set<HandlerLibData>::iterator it = strIntConf.setHandlerLibs.begin(); std::set<HandlerLibData>::iterator itEnd = strIntConf.setHandlerLibs.end(); bool bSuccess = true; HandlerActivator hGen(fGetHBroker(),mapHandlersToUse, bSuccess); while(it != itEnd) hGen(*const_cast<HandlerLibData*>(&(*it++))); return bSuccess; } void MyFrame::loadHandlers(){ wxDynamicLibrary dllDev; wxDir dirHandlers(strIntConf.sHandlersDir); wxString sLibName; if (!dirHandlers.GetFirst( &sLibName, wxEmptyString, wxDIR_FILES)) return; do { MD5 md5Op; wxString sFullPath = strIntConf.sHandlersDir + wxFileName::GetPathSeparator() +sLibName; wxString md5 = wxString(md5Op.digestFile((sFullPath).mb_str(wxConvLibc)),wxConvUTF8 ); if (strIntConf.setHandlerLibs.find(HandlerLibData(md5))!=strIntConf.setHandlerLibs.end()) continue; if(!dllDev.Load( sFullPath )) wxLogError(wxString::Format(wxT("Error Loading ")) + sLibName); else{ void (*dynLoad)(HandlerLibInterface *) = reinterpret_cast<void (*)(HandlerLibInterface* )>(dllDev.GetSymbol(wxT("dynLoad"))); if(dynLoad) { HandlerLibInterface HLI; dynLoad(&HLI); strIntConf.setHandlerLibs.insert( HandlerLibData( md5, sLibName, strIntConf.sHandlersDir, HLI,dllDev.Detach())); }else dllDev.Unload(); } }while(dirHandlers.GetNext( &sLibName)); }