рд╕реНрдХрд╛рдЗрдк рдХрд╛ рдЕрдзреНрдпрдпрди - рдЙрджреНрдзрд░рдг рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ (рдЬреЛ, рдореЗрд░реЗ рдХрд░реНрдо рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕рднреА рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛), рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рд╣реИред

рдХреНрдпрд╛ рдореИрдВ Skype рд╕реЗ рдЙрджреНрдзрд░рдгреЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ html рдЯреИрдЧ (рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ) рдХреЗ рд▓рд┐рдП рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕рдорд░реНрдерди рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░:



рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк Skype рд╕реЗ рдЙрджреНрдзрд░рдгреЛрдВ рдХреА рдЕрдЦрдВрдбрддрд╛ рдФрд░ рд▓реЗрдЦрдХреЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрдИ рдиреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдкреВрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╡рд┐рд╡рд░рдг рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВред рдХрд╣реАрдВ рднреА рдпрд╣ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрджреНрдзрд░рдг рдбрд┐рдЬрд┐рдЯрд▓ рд░реВрдк рд╕реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реИрдВ рдФрд░ рдЙрди рдкрд░ рджреГрдврд╝рддрд╛ рд╕реЗ рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдореБрдЭреЗ рдРрд╕рд╛ рдХреЛрдИ рдмрдпрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛), рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЬрдм рдПрдХ рдЙрджреНрдзрд░рдг рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдХрд╛рдЗрдкреЗ рднреА рд▓реЗрдЦрдХ, рддрд┐рдерд┐, рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЕрдкреАрд▓ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЧрдПред рдЖрдЧреЗ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕реНрдХрд╛рдЗрдк рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рд╕рд┐рд░реНрдл рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рд╕реНрдорд╛рд░реНрдЯ рдпреВрдЖрдИ рдкреИрдЯрд░реНрди рдХреА рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкрд░рдВрдкрд░рд╛рдУрдВ рдореЗрдВ - рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рд╕рднреА рдХреЛрдб рдмрдЯрди рдореЗрдВ рд╣реИрдВ), рдЬреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдХреЛ "рдкрд┐рдХ" рдХрд░рддрд╛ рд╣реИред рдЖрджрдд рд╕реЗ рдмрд╛рд╣рд░, рдореИрдВ c # рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП UI рдХреЗ рд░реВрдк рдореЗрдВ рдЬреАрдд рдХреЗ рд░реВрдк рдЪреБрдиреВрдВрдЧрд╛ (рд╣рд╛рдВ, рдЗрди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рдирдлрд░рддрдХрд░реНрддрд╛ рдореБрдЭреЗ рдорд╛рдл рдХрд░ рджреЗрдВрдЧреЗ)ред
рддреЛ, рдпрд╣рд╛рдБ рдПрдХ рддрдкрд╕реНрд╡реА рдбрд┐рдЬрд╛рдЗрди рдореЛрд▓реНрдб рд╣реИ:



рдПрдХ рдмрдЯрди рдкрд░, рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рд░рд┐рдЪрдПрдбрд┐рдЯ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рджреВрд╕рд░реЗ рдкрд░, рд░рд┐рд╡рд░реНрд╕ рдСрдкрд░реЗрд╢рди рд╣реЛрдЧрд╛ред рдЖрдЗрдП рдЕрдзреНрдпрдпрди рд╢реБрд░реВ рдХрд░реЗрдВред рд╕рдм рдХреБрдЫ рджреЗрдЦрддреЗ рд╣реБрдП, "System.Windows.Forms.Clipboard" рд╡рд░реНрдЧ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд GetDataObject рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ IDataObject рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ (msdn рджреЗрдЦреЗрдВ)ред рдкреНрд░рдХрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЧреЗрдЯрдбрд╛рдЯрд╛ рд╡рд┐рдзрд┐ рд╣рдореЗрдВ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рд╕рд╣реЗрдЬреЗ рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХрд╛рдиреВрдиреА рддрд░реАрдХреЛрдВ рд╕реЗ рдкрд╣рдЪрд╛рдирд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди "рдкреНрд░рд╛рд░реВрдк" рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдХрд╛ рдПрдХ рдЕрдзрд┐рднрд╛рд░ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕рд╣рд╛рдпрдХ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдПрдХ GetFormats рд╡рд┐рдзрд┐ рднреА рд╣реИред рддреЛ, рдпрд╣ рд╡рд╣ рд╣реИ, рдЬреЛ рд╕реНрдХрд╛рдЗрдк рдиреЗ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рд╕рд╣реЗрдЬрд╛ рд╣реИ, рдпрд╣ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХрджрдо:

private const string DataKey = "SkypeMessageFragment"; private Dictionary<string, object> clipboadData = new Dictionary<string, object>(); private string message; private void buttonLoad_Click(object sender, EventArgs e) { IDataObject iData = Clipboard.GetDataObject(); foreach (var format in iData.GetFormats()) { clipboadData[format] = iData.GetData(format); } using (StreamReader streamReader = new StreamReader(clipboadData[DataKey] as MemoryStream)) { message = streamReader.ReadToEnd(); (clipboadData[DataKey] as MemoryStream).Seek(0, SeekOrigin.Begin); } richTextBoxQuote.Text = message; } 


рд╣рдо рд╕реНрдХрд╛рдЗрдк рдореЗрдВ "рдЯреЗрд╕реНрдЯ рдЯреЗрдХреНрд╕реНрдЯ" рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдЙрджреНрдзрд░рдг рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХрд╛рдЗрдк рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдЯ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдЪрд▓реЛ рдбрд┐рдмрдЧ рдореЗрдВ рд╕рд╣реА рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдбрдбреЙрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред



рдореБрдЭреЗ рдЖрдкрдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдХрд╛рдЗрдкрдореЗрдЬрд╝реЗрдЬрдлреНрд░реИрдЧрдореЗрдВрдЯ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдореВрд▓реНрдп рдореЗрдВ рдмрд╣реБрдд рд░реБрдЪрд┐ рд░рдЦрддрд╛ рдерд╛, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдореЗрдореЛрд░реАрд╕реНрдЯреНрд░реАрдо рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╛рдХреА рдореЗрдВ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред рддреЛ рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕ рдзрд╛рд░рд╛ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ:

 private Dictionary<string, object> clipboadData = new Dictionary<string, object>(); private void buttonLoad_Click(object sender, EventArgs e) { IDataObject iData = Clipboard.GetDataObject(); foreach (var format in iData.GetFormats()) { clipboadData[format] = iData.GetData(format); } } 


рдЗрд╕реЗ рдЪрд▓рд╛рдХрд░, рд░рд┐рдЪрдбрд┐рдЯ рдореЗрдВ рдЖрдк рдЗрд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:



рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЗрд╕ рдкрд░ рдореЗрд░рд╛ рд╢реЛрдз рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ред рд╣рд╛рдВ, рдПрдХ рд▓реЗрдЦрдХ рд╣реИ, рд╕рдордп рдпреВрдирд┐рдХреНрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЦреБрдж рдХреЛ рдЙрджреНрдзрд░рдг рдХрд╛ рдкрд╛рда рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдЧрд╛рдЗрдб рд╡реИрд▓реНрдпреВ рд╣реИ рдЬрд╣рд╛рдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрд╢ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╣реИрд╢ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдПрдЪрдореИрдХред рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрджреНрдзрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рд╕реНрдХрд╛рдЗрдк рдЕрдкрдиреЗ рд╕реБрдкрд░ рд╕реАрдХреНрд░реЗрдЯ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (рд╕рдВрднрд╡рдд: рд╕реБрдкрд░ рд╕реАрдХреНрд░реЗрдЯ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рднреА рдЙрджреНрдзрд░рдг рдбреЗрдЯрд╛ рд╕реЗ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рд╣реИрд╢ рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдПрдХ рдЙрджреНрдзрд░рдг рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рднреЗрдЬрддрд╛ рд╣реИред рдЪреИрдЯ, рд╕реНрдХрд╛рдЗрдкреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реИ рдФрд░ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рд░рд┐рдЪрдПрдбрд┐рдЯ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ:

 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace SkypeQuote { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private const string DataKey = "SkypeMessageFragment"; private Dictionary<string, object> clipboadData = new Dictionary<string, object>(); private string message; private void buttonLoad_Click(object sender, EventArgs e) { IDataObject iData = Clipboard.GetDataObject(); foreach (var format in iData.GetFormats()) { clipboadData[format] = iData.GetData(format); } using (StreamReader streamReader = new StreamReader(clipboadData[DataKey] as MemoryStream)) { message = streamReader.ReadToEnd(); (clipboadData[DataKey] as MemoryStream).Seek(0, SeekOrigin.Begin); } richTextBoxQuote.Text = message; } private void buttonSave_Click(object sender, EventArgs e) { message = richTextBoxQuote.Text; MemoryStream memoryStream = new MemoryStream(); StreamWriter streamWriter = new StreamWriter(memoryStream); streamWriter.Write(message); streamWriter.Flush(); memoryStream.Seek(0, SeekOrigin.Begin); clipboadData[DataKey] = memoryStream; IDataObject iData = new DataObject(); foreach (var item in clipboadData) { iData.SetData(item.Key, item.Value); } Clipboard.SetDataObject(iData, true); } } } 


рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ (рд╕реНрдЯреНрд░реАрдорд╡реЙрдЯрд░ рдкрд░ рдбрд┐рд╕реНрдкреЛрдЬрд╝ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдореЗрд░реА рдореЗрдореЛрд░реАрд╕реНрдЯреНрд░реАрдо рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджреЗрддрд╛ рд╣реИ) рдЗрд╕рд▓рд┐рдП, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЪрд▓рд╛рдПрдВ, Skype рд╕реЗ рдЙрджреНрдзрд░рдг рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ, рдЗрд╕реЗ рд╣рдорд╛рд░реЗ "рд╕рдВрдкрд╛рджрдХ" рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рд╕рд╣реЗрдЬреЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЙрджреНрдзрд░рдг рдХреЛ рд╡рд╛рдкрд╕ Skype рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред



рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред рдирд╣реАрдВ, рдмреЗрд╢рдХ, рдореБрдЭреЗ рдкреВрд░реА рдЙрдореНрдореАрдж рдереА рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖред рдХрдо рд╕реЗ рдХрдо рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдХрд╛рд░рдг, рдлрд┐рд░ рдпрд╣ рдЧрд╛рдЗрдб рд╕реНрдкрд╖реНрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджреНрджреЗрд╢реНрдп рдЬрдирддрд╛ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рд╣реИ рдХрд┐ рд╕реНрдХрд╛рдЗрдк рдЙрджреНрдзрд░рдг рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдмрджрдирд╛рдо / рдзреЛрдЦрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдм рдХреЗ рд╕рдм, рдпрд╣ рд╕рд╛рдорд╛рдЬрд┐рдХ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдореЗрдВ рдПрдХ рдирдпрд╛ рд╣рдерд┐рдпрд╛рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рддрд░реНрдХ рд░рд╣реЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдЖрд▓рд╕реА рди рд╣реЛрдВред

"рдХреЛрдб" рдХреЗ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдореЗрдВ PS рд╕рднреА рд╕реНрд░реЛрдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ git рдкрд░ рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред PPS рдореИрдВ рдХреЛрдб рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБ рдЬрдм "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓рд╛рдЗрди рдЯреВрдЯ рдФрд░ рд▓рд┐рдВрдХ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ" рд╡рд┐рдХрд▓реНрдк рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИред (рдореИрдВрдиреЗ рдЗрд╕ http://highlight.hohli.com/ рдХреЗ рд╕рд╛рде рдХреЛрдб рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛, рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧрд╛)

Source: https://habr.com/ru/post/In138051/


All Articles