| Dmitry 的个人资料Дмитрий Пелешенко照片日志列表 | 帮助 |
|
|
5月7日 И снова про WindowsЯ никогда не считал себя одним из тех ребят, которые громко кричат Виндовс маст дай, а Линукс должен жить, смутно при этом представляя чем же они отличаются. Так что не подумайте чего . . . Но не могу не добавить к предыдущему посту фразу, которую я сегодня нашел в книге Дж. Рихтера о .NET Framework 2.0 и С#. "Все годы своего существования Windows славилась как нестабильная и чрезмерно сложная ОС." - Дж. Рихтер "CLR via C#. Программирование на платформе Microsoft .Net Framework 2.0 на языке С#" // Пер. с англ. — М.:Издательство «Русская Редакция» ; СПб. : Питер , 2007. — 656 стр., страница 31 Еще раз повторюсь, я очень хорошо отношусь к Windows и самое главное пользуюсь ей :) 4月30日 Люди, думайте когда пишете !
Думаете это из-за "древности" статьи, откройте любой соврменный номер любого из журналов входящих в перечень ВАК :) 3月23日 Еще немного макросов (продолжение)Этот макрос упорядочивает список литературы в порядке следования ссылок в тексте и производит перенумерацию. Работает по такому же принципу. Следует отметить, что если какой то источник (элемент списка литературы) не будет использован, то он будет удален из списка, о чем будет выдано предупреждение. Sub RenumSources() Dim sel As selection sel = ActiveWindow.selection Dim p As Paragraph Dim Sources As New Collection For Each p In sel.Paragraphs Dim number As String Dim l, s As Integer l = p.Range.Characters.Count number = "" text = "" For i = 1 To l c = p.Range.Characters(i) If c >= "0" And c <= "9" Then number = number + c Else s = i Exit For End If Next i For i = s + 2 To l - 1 text = text + p.Range.Characters(i) Next i If number = "" Then p.Range.Comments.Add(p.Range, "Помилка аналізу джерела") Else Sources.Add(Array(number, text)) End If Next p Dim state As Integer state = 0 Dim sourceNumber As Integer sourceNumber = 1 Dim RenumedSources As New Collection Dim str As String For Each w In ActiveWindow.Document.Words str = Trim(w.text) Select Case str Case "[" state = 1 Case "]", "].", "]:", "],", "];", "]-" state = 0 Case ",", " "
Case Else If state = 1 Then For i = 1 To Sources.Count If Sources.Item(i)(0) = str Then RenumedSources.Add(Array(Sources.Item(i)(0), Sources.Item(i)(1), sourceNumber)) sourceNumber = sourceNumber + 1 Sources.Remove(i) Exit For End If Next i End If End Select Next w If Sources.Count > 0 Then If MsgBox("На деякі джерела не знайдено посилань, ці джерела будуть втрачені. Продовжити ?", vbYesNo + vbExclamation, "Ошибка") = vbNo Then Exit Sub End If End If For Each w In ActiveWindow.Document.Words str = Trim(w.text) Select Case str Case "[" state = 1 Case "]", "].", "]:", "],", "];", "]-" state = 0 Case ",", " "
Case Else If state = 1 Then f = False For i = 1 To RenumedSources.Count If RenumedSources.Item(i)(0) = str Then w.text = CStr(RenumedSources.Item(i)(2)) state = 3 f = True Exit For End If Next i If Not f Then w.Comments.Add(w, "Невідоме посилання") End If End If If state > 1 Then state = state - 1 End If End Select Next w sel.text = CStr(RenumedSources(1)(2)) + ". " + RenumedSources(1)(1) + Chr(10) For i = 2 To RenumedSources.Count sel.text = sel.text + CStr(RenumedSources(i)(2)) + ". " + RenumedSources(i)(1) + Chr(10) Next i End Sub
Еще немного макросовИтак, макросы для автоматизации обработки списка литературы. Для использования любого маскроса из этой серии (а их пока 2) необходимо перед запуском макроса выделить список литературы. Макрос проведет анализ этого списка, а затем всего документа. Ссылки следует обозначать числами в квадратных скобках. Также следует отметить, что список литературы не должен быть списком в понимании MS Word, он должен состоять из последовательности абзацев, каждый из которых начинается с числа и точки после этого числа. Первый из разработанных макросов осуществляет проверку текста и списка литературы на «целостность». Ошибочные ссылки, пункты списка которые не удалось разобрать и на которые нет ссылок в тексте будут коментариями. Sub CheckSources() sel = ActiveWindow.selection Dim p As Paragraph Dim Sources As New Collection For Each p In sel.Paragraphs Dim number As String Dim l As Integer l = p.Range.Characters.Count number = "" For i = 1 To l c = p.Range.Characters(i) If c >= "0" And c <= "9" Then number = number + c Else Exit For End If Next i If number = "" Then p.Range.Comments.Add(p.Range, "Помилка аналізу джерела") Else Sources.Add(Array(number, p.Range)) End If Next p Dim state As Integer state = 0 Dim str As String Dim w As Range unknownSources = 0 For Each w In ActiveWindow.Document.Words str = Trim(w.text) Select Case str Case "[" state = 1 Case "]", "].", "]:", "],", "];", "]-" state = 0 Case ",", " "
Case Else If state = 1 Then f = False For i = 1 To Sources.Count If Sources.Item(i)(0) = str Then f = True Exit For End If Next i If Not f Then w.Comments.Add(w, "Невідоме посилання") unknownSources = unknownSources + 1 End If End If End Select Next w For Each w In ActiveWindow.Document.Words str = Trim(w.text) Select Case str Case "[" state = 1 Case "]", "].", "]:", "],", "];", "]-" state = 0 Case ",", " "
Case Else If state = 1 Then For i = 1 To Sources.Count If Sources.Item(i)(0) = str Then Sources.Remove(i) Exit For End If Next i End If End Select Next w For Each i In Sources i(1).Comments.Add(i(1), "Не застосоване посилання") Next i MsgBox("Не застосованих джерел: " + CStr(Sources.Count) + ". Невідомих посилань: " + CStr(unknownSources) + ".", vbInformation) End Sub
Второй макрос упорядочивает список литературы в порядке следования ссылок в тексте и производит перенумерацию. Работает по такому же принципу. Следует отметить, что если какой то источник (элемент списка литературы) не будет использован, то он будет удален из списка, о чем будет выдано предупреждение. В одну запись блога все не влазит поетому код этого макроса в ледующей записи.
|
|
|