בירור | השוואת טקסטים עם התעלמות מהניקוד - מה הפתרון
-
@menajemmendel @נוכחות
מצאתי !!!!
חפש : [^0192-^0204^0209^0210] (בתווים כללים)
החלף: במוסתר (עיצוב> גופן> מוסתר).בהשראת @pcinfogmach
(הקוד נלקח מפהhttps://mitmachim.top/post/613085) -
@u88 כתב בבירור | השוואת טקסטים עם התעלמות מהניקוד - מה הפתרון:
@menajemmendel @נוכחות
מצאתי !!!!
חפש : [^0192-^0204^0209^0210] (בתווים כללים)
החלף: במוסתר (עיצוב> גופן> מוסתר).בהשראת @pcinfogmach
(הקוד נלקח מפהhttps://mitmachim.top/post/613085)@u88 הוא מסתיר את הניקוד ומגדיר אותו כמוסתר אך למרבה הצער בהשוואת המסמכים הוא מאתר אותו כמו טקסט מנוקד בניגוד לכל הציפיות.
-
@זאב-לבן כתב בבירור | השוואת טקסטים עם התעלמות מהניקוד - מה הפתרון:
@נוכחות כתב בבירור | השוואת טקסטים עם התעלמות מהניקוד - מה הפתרון:
כיצד ניתן להשוות טקסטים כשאחד מנוקד ואחד לא
אני הייתי הולך על כיון שהניקוד יהיה ע"י שם משתמש אחר
וכך בהגדרות וורד להגדיר שיציג רק שנויים מהמשתמש השניניסיתי להתקדם עם הפתרון הזה ועדיין לא היה ברור לי איך ניתן להגדיר שהניקוד יהיה על שם משתמש אחר (אא"כ נבוא להשוואת מסמכים ואז שוב הוא לא מאפשר להשוות בין מוקד ללא מנוקד).
כמו כן כמדומני שבוורד ההגדרה הרגילה שלא ניתן להשתמש בתכונה השוואת מסמכים עם מסמך שיש בו תיקונים אא"כ מקבל או דוחה התיקונים קודם או מקבל התיקונים בשעת ההשוואה.
אם יש לך מידע כיצד להתגבר על הבעיות הללו אשמח שתשתף אותי.
תודה! -
מי שצריך פתרון לבעיה הזו יכול לפנות אלי בפרטי
-
@es0583292679 הקוד דלקמן תרומה לעימודית בגירסה הבאה
(זה מקרו של מודול ולא מקרו רגיל, אבל דורש הפעלת המקרו).
מבדיקה ראשונית נראה שעובד טוב וזה מונע מהוורד להתייחס לתווי ניקוד בזמן ההשוואה.
יש"כ לכל העוזרים שיחיו.
עריכה: בטעות העליתי קוד טיוטה והקוד הסופי נעלם לי עקב ששמרתי את הטיוטה בטעות, אנסה ליצור את הקוד שוב. -
לכל מאן דבעי (וגם - תרומה לעימודית) @es0583292679
להלן המקרו לפני ואחרי השוואת המסמכיםSub מחיקתניקוד() ' ' לסוגרייםהפיכתניקוד Macro ' ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "[^0192-^0204^0209^0204]" .Replacement.Text = "{^&}" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub Sub סוגרייםלהערות() Application.Run MacroName:="מחיקתניקוד" ' חזרהלראשהמסמך Macro ' ' Selection.WholeStory Selection.MoveLeft Unit:=wdCharacter, Count:=1 Application.ScreenUpdating = False again: Selection.Find.ClearFormatting If Selection.Find.Execute(findText:="\{*\}", MatchWildcards:=True, Wrap:=wdFindStop) = True Then strt = 2: lent = Len(Selection.Text) re: For I = strt To lent If Mid(Selection.Text, I, 1) = Chr(123) Then Selection.Extend Character:=Chr(125) strt = I + 1: lent = Len(Selection.Text) GoTo re End If Next mRange = Right(Selection.Text, (Len(Selection.Text) - 1)) Selection.Delete ActiveDocument.Footnotes.Add Range:=Selection.Range, Reference:="", Text:=Left(mRange, (Len(mRange) - 1)) If Selection.Previous.Text = " " Then Selection.Delete Unit:=wdCharacter, Count:=-1 GoTo again End If Application.ScreenUpdating = True End Sub Sub החזרהפנימה() Dim Adjust As Boolean, myRange As Range Dim I As Integer, X As Integer Application.ScreenUpdating = False Adjust = Options.PasteAdjustWordSpacing: Options.PasteAdjustWordSpacing = False X = ActiveDocument.Footnotes.Count For I = 1 To X StatusBar = I & ":" & X Set myRange = ActiveDocument.Footnotes(1).Range With myRange If InStr(myRange, Chr(13)) > 0 Then _ .Find.Execute findText:=Chr(13), ReplaceWith:=Chr(9), _ Wrap:=wdFindStop, Replace:=wdReplaceAll .MoveStart Count:=-1: If .Characters(1) = Chr(2) Then .MoveStart Count:=1 .MoveStart Count:=Len(myRange) - Len(LTrim(myRange)) .MoveEnd Count:=Len(RTrim(myRange)) - Len(myRange) .Copy restoredText = Trim(myRange.Text) ' הסרת רווחים בתחילת וסוף restoredText = Replace(restoredText, " ", "") ' הסרת כל הרווחים End With With ActiveDocument.Footnotes(1).Reference .Paste: .InsertBefore "": .InsertAfter "" If .Characters.Count >= 2 Then Set DupFont1 = .Characters(2).Font.Duplicate Else ' אפשר להוסיף קוד כאן אם אין מספיק תווים Set DupFont1 = .Characters(1).Font.Duplicate ' או פשוט קח אותו End If If .Characters.Count > 0 Then Set DupFont2 = .Characters.Last.Font.Duplicate Else ' אפשר להוסיף קוד כאן אם אין תווים End If .Characters.Last.Font = DupFont1: .Characters.First.Font = DupFont2 .MoveStart Count:=1: .Font.SizeBi = 8 End With Next I Application.ScreenUpdating = True: Options.PasteAdjustWordSpacing = Adjust End Sub
הוראות:
לפני ההשוואה להפעיל את המקרו סוגרייםלהערות
אחרי המקרו להפעיל את המקרו החזרהפנימה
מגבלות: עובד רק עם טקסט בלי הערות שוליים כמובן. עובד רק על טקסט בלי סימוני {} (אפשר להתגבר על זה אם מישהו ירצה). יתכן שעובד רק על טקסט קטן. יתכן שטקסט גדול יצטרך תוכנה חזקה יותר ממקרו פשוט.
באגים: נראה שהתנוחה של הניקוד לאחר ההחלפה לא יושבת טוב אלא זזה קצת הצידה, מי שיודע למה אשמח אם יוכל לספק הסבר.