Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/64: Рейтинг темы: голосов - 64, средняя оценка - 4.52
В работе
24 / 19 / 6
Регистрация: 13.07.2018
Сообщений: 829
Записей в блоге: 12

Перевод имени в родительный падеж

04.07.2019, 08:15. Показов 14684. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!!!
Не могу в просторах интернета найти решения для своей задачи.
На форме заполняется Фамилия, Имя и Отчество.
Далее печатается заявление и в шапке от кого нужно мое фио перевести в родительный падеж.
Типа:
Дано:

Баев
Виктор
Вячеславович

Результат:
Баева
Виктора Вячеславовича
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.07.2019, 08:15
Ответы с готовыми решениями:

Склонение фамилий в родительный падеж
Всем привет, есть ли готовые макросы для Word которые будут склонять фамилии в род.падеж?

Пользовательская функция замены в родительный падеж
Ребят, всем привет, может такая тема уже есть, но найти не смогла. Ситуация такая, написала функцию (может со своими недочетами, но все...

Склонение слова в предложный падеж
Здравствуйте, вот снова обращаюсь к Вам за помощью. Нужно склонить слово по предложному падежу. В задумках, склонить слово в...

26
788 / 67 / 4
Регистрация: 28.05.2015
Сообщений: 114
09.08.2019, 13:47
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Hikitosik Посмотреть сообщение
Думаю, что на просторах интернета есть такие таблицы
с помощью которых пытаются Солнце закатывать вручную?
0
0 / 0 / 0
Регистрация: 05.12.2016
Сообщений: 86
09.08.2019, 15:34
Для односложные фамилий люди повбивали когда-то руками, поэтому ничего зазорного в использовании этого не вижу. Если есть, зачем изворачиваться и придумывать велосипед?
Для составных фамилий можно подумать. Опять-таки, если кто-то уже это не сделал за Вас.
Зачем усложнять себе жизнь?)))
0
788 / 67 / 4
Регистрация: 28.05.2015
Сообщений: 114
09.08.2019, 16:09
Цитата Сообщение от Hikitosik Посмотреть сообщение
люди повбивали когда-то руками, поэтому ничего зазорного в использовании этого не вижу
потому что не в теме, потому и не видите. Попробуйте не думать о том, что "на просторах интернета есть такие таблицы", а реально хоть немного изучить положение дел на этих просторах, тогда поймете, что как раз и предлагаете "усложнять себе жизнь".
0
0 / 0 / 0
Регистрация: 21.02.2024
Сообщений: 2
04.04.2024, 19:11
Доработал немного скрипт написанный выше, так что версия betta

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
' GenitiveCase - формирование родительного падежа от ФИО
'
' Параметры: sSurname    - фамилия
'            sName       - имя
'            sPatronymic - отчество
'
' Результат: ФИО в родительном падеже
'
Function GenitiveCase(sSurname As String, sName As String, sPatronymic As String) As String
  Dim bMaleSex As Variant
      
  bMaleSex = (Right(sPatronymic, 1) = "ч")
        
'   Фамилия
  If Len(sSurname) > 0 Then
    If bMaleSex Then
        Select Case Right(sSurname, 1)
            Case "о", "и", "я", "ы"
                GenitiveCase = sSurname
            Case Else
                GenitiveCase = sSurname + "а"
        End Select
 
 
'LS склонение мужских фамилий с окончанием на "а"
        Select Case Right(sSurname, 2)
            Case "ба", "ва", "да", "жа", "за", "ла", "ма", "на", "па", "ра", "са", "та", "фа", "ца"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "ы"
        End Select
        
        Select Case Right(sSurname, 2)
            Case "га", "ка", "ха", "ша", "ща"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "и"
        End Select
 
'LS склонение мужских фамилий с окончанием на "й"
        Select Case Right(sSurname, 3)
            Case "бой", "вой", "гой", "дой", "жой", "зой", "кой", "лой", "мой", "ной", "пой", "сой", "той", "фой", "хой", "чой", "шой", "щой"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ого"
            Case "бый", "вый", "гый", "дый", "жый", "зый", "кый", "лый", "мый", "ный", "пый", "сый", "тый", "фый", "хый", "чый", "шый", "щый"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ого"
            Case "бай", "вай", "гай", "дай", "жай", "зай", "кай", "лай", "май", "най", "пай", "сай", "тай", "фай", "хай", "чай", "шай", "щай"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
            Case "бей", "гей", "дей", "кей", "лей", "мей", "ней", "кей", "лей", "мей", "ней", "пей", "рей", "сей", "тей", "фей", "хей", "цей", "чей", "шей", "щей"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
            Case "вей"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ья"
            Case "бий", "дий", "пой", "рой", "фой", "хой", "цой"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
            Case "вий" 'Коровий
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ьего" 'Коровьего
            Case "гий", "кий", "лой", "мой", "ной", "сой", "той", "чой", "шой", "щой", "бый", "вый"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ого"
            Case "бюй", "вюй", "гюя", "дюя", "жюй", "зюй", "кюй", "люй", "мюй", "нюй", "пюй", "рюй", "сюй", "тюй", "фюй", "хюй", "цюй", "чуй", "шуй", "щуй"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
            Case "буй", "вуй", "гуя", "дуя", "жуй", "зуй", "куй", "луй", "муй", "нуй", "пуй", "руй", "суй", "туй", "фуй", "хуй", "цуй", "чуй", "шуй", "щуй"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
        End Select
 
'LS склонение мужских фамилий с окончанием на "й", состоящих из трёх символов
        Select Case Right(sSurname, 3)
            Case "Бой", "Вой", "Гой", "Дой", "Жой", "Зой", "Кой", "Лой", "Мой", "Ной", "Пой", "Сой", "Той", "Фой", "Хой", "Чой", "Шой", "Щой"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ого"
            Case "Бай", "Вай", "Гай", "Дай", "Жай", "Зай", "Кай", "Лай", "Май", "Най", "Пай", "Сай", "Тай", "Фай", "Хай", "Чай", "Шай", "Щай"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
            Case "Бей", "Гей", "Дей", "Кей", "Лей", "Мей", "Ней", "Кей", "Пей", "Рей", "Сей", "Тей", "Фей", "Хей", "Цей", "Чей", "Шей", "Щей"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
            Case "вей"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ья"
            Case "Бий", "Дий", "Пой", "Рой", "Фой", "Хой", "Цой"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
            Case "Вий" 'Коровий
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ьего" 'Коровьего
            Case "Гий", "Кий", "Лой", "Мой", "Ной", "Сой", "Той", "Чой", "Щой", "Щой"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ого"
            Case "Бюй", "Вюй", "Гюя", "Дюя", "Жюй", "Зюй", "Кюй", "Люй", "Мюй", "Нюй", "Пюй", "Рюй", "Сюй", "Тюй", "Фюй", "Хюй", "Цюй", "Чуй", "Шуй", "Щуй"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
            Case "Буй", "Вуй", "Гуя", "Дуя", "Жуй", "Зуй", "Куй", "Луй", "Муй", "Нуй", "Пуй", "Руй", "Суй", "Туй", "Фуй", "Хуй", "Цуй", "Чуй", "Шуй", "Щуй"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
        End Select
 
 
    Else
        Select Case Right(sSurname, 1)
            Case "о", "и", "б", "в", "г", "д", "ж", "з", "к", "л", "м", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ", "ь", "й"
                GenitiveCase = sSurname
            Case "я"
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) & "ой"
            Case Else
                GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) & "ой"
        End Select
       
    End If
    GenitiveCase = GenitiveCase & " "
  End If
'   Имя
  If Len(sName) > 0 Then
    If bMaleSex Then
        Select Case Right(sName, 1)
            Case "й", "ь"
                GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "я"
            Case Else
                GenitiveCase = GenitiveCase & sName & "а"
        End Select
    Else
        Select Case Right(sName, 1)
            Case "а"
                Select Case Mid(sName, Len(sName) - 1, 1)
                    Case "и", "г"
                        GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "и"
                    Case Else
                        GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "ы"
                End Select
            Case "я"
                If Mid(sName, Len(sName) - 1, 1) = "и" Then
                    GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "и"
                Else
                    GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "и"
                End If
            Case "ь"
                GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "и"
            Case Else
                GenitiveCase = GenitiveCase & sName
        End Select
    End If
    GenitiveCase = GenitiveCase & " "
  End If
'   Отчество
  If Len(sPatronymic) > 0 Then
    If bMaleSex Then
            GenitiveCase = GenitiveCase & sPatronymic & "а"
    Else
            GenitiveCase = GenitiveCase & Mid(sPatronymic, 1, Len(sPatronymic) - 1) & "ы"
    End If
  End If
End Function
 
' TvoritCase - формирование творительного падежа от ФИО
'
' Параметры: sSurname    - фамилия
'            sName       - имя
'            sPatronymic - отчество
'
' Результат: ФИО в творительном падеже
'
Function TvoritCase(sSurname As String, sName As String, sPatronymic As String) As String
  Dim bMaleSex As Variant
    
  bMaleSex = (Right(sPatronymic, 1) = "ч")
        
'   Фамилия
  If Len(sSurname) > 0 Then
    If bMaleSex Then
        Select Case Right(sSurname, 1)
            Case "о", "и", "я", "ы"
                TvoritCase = sSurname
            Case Else
                TvoritCase = sSurname + "ом"
        End Select
 
 
'LS склонение мужских фамилий с окончанием на "а"
        Select Case Right(sSurname, 2)
            Case "ба", "ва", "да", "жа", "за", "ла", "ма", "на", "па", "ра", "са", "та", "фа", "ца"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "е"
        End Select
        
        Select Case Right(sSurname, 2)
            Case "га", "ка", "ха", "ша", "ща"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "ей"
        End Select
 
'LS склонение мужских фамилий с окончанием на "й"
        Select Case Right(sSurname, 3)
            Case "бой", "вой", "гой", "дой", "жой", "зой", "кой", "лой", "мой", "ной", "пой", "сой", "той", "фой", "чой", "шой", "щой"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ым"
            Case "хой"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 2) + "им"
            Case "бай", "вай", "гай", "дай", "жай", "зай", "кай", "лай", "май", "най", "пай", "сай", "тай", "фай", "хай", "чай", "шай", "щай"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "ем"
            Case "бей", "гей", "дей", "кей", "лей", "мей", "ней", "кей", "лей", "мей", "ней", "пей", "рей", "сей", "тей", "фей", "хей", "цей", "чей", "шей", "щей"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "ем"
            Case "вей"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ьем"
            Case "бий", "дий", "пой", "рой", "сой", "фой", "хой", "цой"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "ем"
            Case "вий" 'Коровий
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ьим" 'Коровьего
            Case "гий", "кий", "лой", "мой", "ной", "той", "чой", "шой", "щой"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 2) + "им"
            Case "бюй", "вюй", "гюя", "дюя", "жюй", "зюй", "кюй", "люй", "мюй", "нюй", "пюй", "рюй", "сюй", "тюй", "фюй", "хюй", "цюй", "чуй", "шуй", "щуй"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "им"
            Case "буй", "вуй", "гуя", "дуя", "жуй", "зуй", "куй", "луй", "муй", "нуй", "пуй", "руй", "суй", "туй", "фуй", "хуй", "цуй", "чуй", "шуй", "щуй"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "ем"
            Case "бый", "вый", "гый", "дый", "зый", "кый", "лый", "мый", "ный", "пый", "рый", "сый", "тый", "фый", "хый", "цый", "щый", "щый"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ым"
        End Select
 
'LS склонение мужских фамилий с окончанием на "ц"
        Select Case Right(sSurname, 1)
            Case "ц"
                TvoritCase = sSurname + "ем"
        End Select
 
'LS склонение мужских фамилий с окончанием на "й", состоящих из трёх символов
        Select Case Right(sSurname, 3)
            Case "Бой", "Вой", "Гой", "Дой", "Жой", "Зой", "Кой", "Лой", "Мой", "Ной", "Пой", "Сой", "Той", "Фой", "Хой", "Чой", "Шой", "Щой"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ым"
            Case "Бай", "Вай", "Гай", "Дай", "Жай", "Зай", "Кай", "Лай", "Май", "Най", "Пай", "Сай", "Тай", "Фай", "Хай", "Чай", "Шай", "Щай"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "ем"
            Case "Бей", "Гей", "Дей", "Кей", "Лей", "Мей", "Ней", "Кей", "Пей", "Рей", "Сей", "Тей", "Фей", "Хей", "Цей", "Чей", "Шей", "Щей"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "ем"
            Case "вей"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ьем"
            Case "Бий", "Дий", "Пой", "Рой", "Фой", "Хой", "Цой"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "ем"
            Case "Вий" 'Коровий
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ьим" 'Коровьего
            Case "Гий", "Кий", "Лой", "Мой", "Ной", "Сой", "Той", "Чой", "Щой", "Щой"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 2) + "им"
            Case "Бюй", "Вюй", "Гюя", "Дюя", "Жюй", "Зюй", "Кюй", "Люй", "Мюй", "Нюй", "Пюй", "Рюй", "Сюй", "Тюй", "Фюй", "Хюй", "Цюй", "Чуй", "Шуй", "Щуй"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "им"
            Case "Буй", "Вуй", "Гуя", "Дуя", "Жуй", "Зуй", "Куй", "Луй", "Муй", "Нуй", "Пуй", "Руй", "Суй", "Туй", "Фуй", "Хуй", "Цуй", "Чуй", "Шуй", "Щуй"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) + "ем"
        End Select
 
        
        
        
    Else
        Select Case Right(sSurname, 1)
            Case "о", "и", "б", "в", "г", "д", "ж", "з", "к", "л", "м", "й", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ", "ь"
            
                TvoritCase = sSurname
            Case "я"
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 2) & "ой"
            Case Else
                TvoritCase = Mid(sSurname, 1, Len(sSurname) - 1) & "ой"
        End Select
    End If
    TvoritCase = TvoritCase & " "
  End If
'   Имя
  If Len(sName) > 0 Then
    If bMaleSex Then
        Select Case Right(sName, 1)
            Case "й", "ь"
                TvoritCase = TvoritCase & Mid(sName, 1, Len(sName) - 1) & "ем"
            Case Else
                TvoritCase = TvoritCase & sName & "ом"
        End Select
    Else
        Select Case Right(sName, 1)
            Case "а", "я"
                If Mid(sName, Len(sName) - 1, 1) = "и" Then
                    TvoritCase = TvoritCase & Mid(sName, 1, Len(sName) - 1) & "ей"
                Else
                    TvoritCase = TvoritCase & Mid(sName, 1, Len(sName) - 1) & "ой"
                End If
            Case "ь"
                TvoritCase = TvoritCase & Mid(sName, 1, Len(sName) - 1) & "ью"
            Case Else
                TvoritCase = TvoritCase & sName
        End Select
    End If
    TvoritCase = TvoritCase & " "
  End If
'   Отчество
  If Len(sPatronymic) > 0 Then
    If bMaleSex Then
            TvoritCase = TvoritCase & sPatronymic & "ем"
    Else
            TvoritCase = TvoritCase & Mid(sPatronymic, 1, Len(sPatronymic) - 1) & "ой"
    End If
  End If
End Function
 
' Результат: ФИО в дательном падеже
 
Function DativeCa(sSurname As String, sName As String, sPatronymic As String) As String
  Dim bMaleSex As Variant
    
  bMaleSex = (Right(sPatronymic, 1) = "ч")
        
'   Фамилия
  If Len(sSurname) > 0 Then
    If bMaleSex Then
        Select Case Right(sSurname, 1)
            Case "о", "и", "я", "а"
                DativeCa = sSurname
            Case "й"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) + "ому"
            Case Else
                DativeCa = sSurname + "у"
        End Select
        
         Select Case Right(sSurname, 2)
            Case "ба", "ва", "да", "жа", "за", "ла", "ма", "на", "па", "ра", "са", "та", "фа", "ца"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "е"
        End Select
        
        Select Case Right(sSurname, 2)
            Case "га", "ка", "ха", "ша", "ща"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "е"
        End Select
 
'LS склонение мужских фамилий с окончанием на "й"
        Select Case Right(sSurname, 3)
            Case "бой", "вой", "гой", "дой", "жой", "зой", "кой", "лой", "мой", "ной", "пой", "сой", "той", "фой", "чой", "шой", "щой"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) + "ю"
            Case "хой"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "му"
            Case "бый", "вый", "гый", "дый", "жый", "зый", "кый", "лый", "мый", "ный", "пый", "сый", "тый", "фый", "хый", "чый", "шый", "щый"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) + "ому"
            Case "бай", "вай", "гай", "дай", "жай", "зай", "кай", "лай", "май", "най", "пай", "сай", "тай", "фай", "хай", "чай", "шай", "щай"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "ю"
            Case "бей", "гей", "дей", "кей", "лей", "мей", "ней", "кей", "лей", "мей", "ней", "пей", "рей", "сей", "тей", "фей", "хей", "цей", "чей", "шей", "щей"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "ю"
            Case "вей"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) + "ьем"
            Case "бий", "дий", "пой", "рой", "фой", "хой", "цой"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "ю"
            Case "вий" 'Коровий
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) + "ьему" 'Коровьего
            Case "гий", "кий", "лой", "мой", "ной", "сой", "той", "чой", "шой", "щой"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) + "ому"
            Case "бюй", "вюй", "гюя", "дюя", "жюй", "зюй", "кюй", "люй", "мюй", "нюй", "пюй", "рюй", "сюй", "тюй", "фюй", "хюй", "цюй", "чуй", "шуй", "щуй"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "ем"
            Case "буй", "вуй", "гуя", "дуя", "жуй", "зуй", "куй", "луй", "муй", "нуй", "пуй", "руй", "суй", "туй", "фуй", "хуй", "цуй", "чуй", "шуй", "щуй"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "ю"
        End Select
 
'LS склонение мужских фамилий с окончанием на "й", состоящих из трёх символов
        Select Case Right(sSurname, 3)
            Case "Бой", "Вой", "Гой", "Дой", "Жой", "Зой", "Кой", "Лой", "Мой", "Ной", "Пой", "Сой", "Той", "Фой", "Хой", "Чой", "Шой", "Щой"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) + "ю"
            Case "Бай", "Вай", "Гай", "Дай", "Жай", "Зай", "Кай", "Лай", "Май", "Най", "Пай", "Сай", "Тай", "Фай", "Хай", "Чай", "Шай", "Щай"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "ю"
            Case "Бей", "Гей", "Дей", "Кей", "Лей", "Мей", "Ней", "Кей", "Пей", "Рей", "Сей", "Тей", "Фей", "Хей", "Цей", "Чей", "Шей", "Щей"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "ью"
            Case "вей"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) + "ьем"
            Case "Бий", "Дий", "Пой", "Рой", "Фой", "Хой", "Цой"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "ю"
            Case "Вий" 'Коровий
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) + "ьего" 'Коровьего
            Case "Гий", "Кий", "Лой", "Мой", "Ной", "Сой", "Той", "Чой", "Щой", "Щой"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) + "ого"
            Case "Бюй", "Вюй", "Гюя", "Дюя", "Жюй", "Зюй", "Кюй", "Люй", "Мюй", "Нюй", "Пюй", "Рюй", "Сюй", "Тюй", "Фюй", "Хюй", "Цюй", "Чуй", "Шуй", "Щуй"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
            Case "Буй", "Вуй", "Гуя", "Дуя", "Жуй", "Зуй", "Куй", "Луй", "Муй", "Нуй", "Пуй", "Руй", "Суй", "Туй", "Фуй", "Хуй", "Цуй", "Чуй", "Шуй", "Щуй"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) + "я"
        End Select
 
        
    Else
        Select Case Right(sSurname, 1)
            Case "о", "и", "б", "в", "г", "д", "ж", "з", "к", "й", "л", "м", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ", "ь"
                DativeCa = sSurname
            Case "я"
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) & "ой"
            Case Else
                DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) & "ой"
        End Select
    End If
    DativeCa = DativeCa & " "
  End If
'   Имя
  If Len(sName) > 0 Then
    If bMaleSex Then
        Select Case Right(sName, 1)
            Case "й", "ь"
                DativeCa = DativeCa & Mid(sName, 1, Len(sName) - 1) & "ю"
            Case Else
                DativeCa = DativeCa & sName & "у"
        End Select
    Else
        Select Case Right(sName, 1)
            Case "а", "я"
                If Mid(sName, Len(sName) - 1, 1) = "и" Then
                    DativeCa = DativeCa & Mid(sName, 1, Len(sName) - 1) & "и"
                Else
                    DativeCa = DativeCa & Mid(sName, 1, Len(sName) - 1) & "е"
                End If
            Case "ь"
                DativeCa = DativeCa & Mid(sName, 1, Len(sName) - 1) & "и"
            Case Else
                DativeCa = DativeCa & sName
        End Select
    End If
    DativeCa = DativeCa & " "
  End If
'   Отчество
  If Len(sPatronymic) > 0 Then
    If bMaleSex Then
            DativeCa = DativeCa & sPatronymic & "у"
    Else
            DativeCa = DativeCa & Mid(sPatronymic, 1, Len(sPatronymic) - 1) & "е"
    End If
  End If
End Function
0
428 / 333 / 61
Регистрация: 29.06.2019
Сообщений: 493
04.04.2024, 19:32
Цитата Сообщение от LeoneSky Посмотреть сообщение
Case "Буй", "Вуй", "Гуя", "Дуя", "Жуй", "Зуй", "Куй", "Луй", "Муй", "Нуй", "Пуй", "Руй", "Суй", "Туй", "Фуй", "Хуй", "Цуй", "Чуй", "Шуй", "Щуй"
Не забыли главное
3
0 / 0 / 0
Регистрация: 21.02.2024
Сообщений: 2
04.04.2024, 19:33
Ага, ачивка)
0
jump
 Аватар для I can
5005 / 4769 / 852
Регистрация: 13.04.2015
Сообщений: 10,017
04.04.2024, 20:30
Цитата Сообщение от SergioJek Посмотреть сообщение
главное
Повелительное наклонение глагола "ховАть".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.04.2024, 20:30

Родительный падеж
Здравствуйте. Столкнулся с проблемой падежей при выводе: названия регионов хранятся в базе в формате "Адыгея",...

Макрос замены с именитольного на родительный падеж
Здравствуйте! А возможно ли написать макрос для Microsoft Word, который бы автоматически в тексте, заменял фамилии в именительном...

Перевод из Именительного падежа в Родительный
Ребят,подскажите,пожалуйста как в УП БП 3.0 перевести ФИО и должность контактного лица из Именительного падежа в Родительный?Заранее...

Падеж слова
Здравствуйте Пишу программу, тестирующую ученика и в зависимости от результата выдающую кол-во очков. Есть три лейбла(тупой...

Падеж названия месяца
QDate::longMonthName и QLocale::monthName возвращают в русской локали названия месяцев в родительном падеже, есть ли путь получить их же в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru