рдЙрджрд╛рддреНрдд рдкрд╛рда 2 рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛрдб рдмреНрд▓реЙрдХ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛

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



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ:

id | field1 | field2 | field3

рдФрд░ рдЖрдкрдХреЛ рдлреЙрд░реНрдо рдХрд╛ рдорд╛рд░реНрдХрдЕрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 <tr> <td class="fls"><GEN:FIELDLABEL NAME="Field1Label" /></td> <td class="dfv" style="white-space:nowrap;"><GEN:FIELDVALUE NAME="Field1" /></td> </tr> <tr> <td class="fls"><GEN:FIELDLABEL NAME="Field2Label" /></td> <td class="dfv" style="white-space:nowrap;"><GEN:FIELDVALUE NAME="Field2" /></td> </tr> <tr> <td class="fls"><GEN:FIELDLABEL NAME="Field3Label" /></td> <td class="dfv" style="white-space:nowrap;"><GEN:FIELDVALUE NAME="Field3" /></td> </tr> 


рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ 3 рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЙрдирдореЗрдВ рд╕реЗ 30 рд╣реИрдВ рдФрд░ рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдб рд╣реИрдВ?

рдкрд╣рд▓реЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╕рдм рдХреБрдЫ sql рдореЗрдВ рдХрд░рдирд╛ рд╣реИред рдлрд╝реАрд▓реНрдб рдХреА рд╕реВрдЪреА рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдХреЛрдб рдмреНрд▓реЙрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдмрд▓ рдмрдирд╛рдПрдВ рдЬрд▓реНрджреА рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, sql рд╕рд░реНрд╡рд░ рдкреНрд░рдмрдВрдзрди рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рдЙрддреНрдкрдиреНрди рдХреЛрдб рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдирдХрд▓ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ Sublime Text 2 рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рддреЛ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп:

рд╣рдо рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВ:

[fieldName, signFieldName, fieldFullName, fieldMeasurment]

рд╕рдВрдкрд╛рджрд┐рдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдо рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ {0}, {1}, {2} рдФрд░ {3} рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

ValidateSignedField({0},{1});

рдЕрдЧрд▓рд╛, рдХрдИ рдЪрдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЪреБрдиреЗрдВ, Ctrl + Shift + z рджрдмрд╛рдПрдВ рдФрд░ рд╕рдорд╛рдкреНрдд рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рд╕рд░рд▓ рдирд┐рдХрд▓рд╛, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдЙрджрд╛рддреНрдд рдкрд╛рда 2 рдкреНрд▓рдЧрдЗрди рд╣реИ, рдФрд░ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рдЕрдЬрдЧрд░ рдХреЛ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХрд╛рдлреА рд╕рддрд╣реА рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдерд╛ред

рдПрдХ рдирдпрд╛ рдкреНрд▓рдЧ-рдЗрди (рдЙрдкрдХрд░рдг -> рдирдпрд╛ рдкреНрд▓рдЧрдЗрди) рдмрдирд╛рдПрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЛрдбрдЬреЗрдирд╣реЛрдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред

рдкреНрд▓рдЧрдЗрди рдХреЛрдб:

 # coding=utf-8 import sublime import sublime_plugin #        {0},{1},{2}  {3} field_rows = [ ['dbField1','dbField1Sign','Field 1 full name','m/s'], ['dbField2','dbField2Sign','Field 2 full name','kg/m*m'], ['dbField3','dbField3Sign','Field 3 full name','V'], ['dbField4','dbField4Sign','Field 4 full name','km/h'] ] class CodegenCommand(sublime_plugin.TextCommand): def run(self, edit): #   view view = self.view #      for curr_sel in view.sel(): n = 0 region = curr_sel if not region.empty(): #   ,      selection = view.substr(region) result = '' #         for field_row in field_rows: result += selection.replace('{0}',field_row[0]).replace('{1}',field_row[1]).replace('{2}',field_row[2]).replace('{3}',field_row[3]).replace('{n0}',str(n)).replace('{n1}',str(n+1)) result += '\r\n' n += 1 #      self.view.replace(edit, region, result) 


рдлрд╝реАрд▓реНрдб_рд░реЛ - рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕рд░рдгреАред
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╢реВрдиреНрдп рдпрд╛ рдПрдХ рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдЖ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдХреНрд░рдорд╢рдГ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ {n0} рдФрд░ {n1} рдХреЛ рдЬреЛрдбрд╝рд╛ред

рдЕрдм рдпрд╣ рдкреНрд▓рдЧрдЗрди рдХреЙрд▓ рдореЗрдВ рдПрдХ рд╣реЙрдЯрдХреА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдХреБрдВрдЬреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдореЗрдВ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
[
{ "keys": ["ctrl+shift+z"], "command": "codegen" }
]


рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд▓рдЧрдЗрди рдХрд┐рд╕реА рдХреЛ рдХреБрдЫ рд╕рдордп рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

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


All Articles