חלום \ אתגר | זיהוי ראשי תיבות של סימני מקורות בקבצי וורד
-
@אוריי כתב בחלום \ אתגר | זיהוי ראשי תיבות של סימני מקורות בקבצי וורד:
@davidnead כתב בחלום \ אתגר | זיהוי ראשי תיבות של סימני מקורות בקבצי וורד:
רצויה היכרות טובה מאוד עם ביטויים רגולריים
את האמת
את החלק הזה חסר לי מאוד
חיפשתי בעבר מדריך טוב ולא מצאתי ..
כאן בפורום מצאתי איזה מאמר קטן אבל ממש לא מקיףשים לב שוורד יש לו שפת תווים כלליים משלו, (וגם יש כמה באגים במנוע)
כאן יש דף עם תיעוד טוב:
https://wordmvp.com/FAQs/General/UsingWildcards.htmתוכל גם לשאול כאן (״איך אני כותב ביטוי למצוא משהו שמתאים לתבנית XYZ״) ועד כמה שיהיה לי זמן וחשק אשמח לענות
-
ראשית המאמר כאן בפורום הוא אחד הטובים שקראתי בעברית, והוא עזר לי בעבר להיכנס לעולם הזה.
שנית אין חומר בעברית שמקיף את הנושא, לפחות לא חומר מקוון. ביטויים רגולריים זה נושא עשיר ומפותח, ורוב האנשים המשתמשים בהם משתמשים רק ביכולות הבסיסיות.
יש איזשהו אתר מיושן באנגלית שכל פעם אני מסתבל למצוא אותו שיש שם תיעוד רב והסברים רבים.לגבי וורד והסימנים המיוחדים שלו - אני חושב שזה ממש לא יכול להיות הדרך לעבודה כזו. זה צריך להיות קוד טהור.
-
@davidnead כתב בחלום \ אתגר | זיהוי ראשי תיבות של סימני מקורות בקבצי וורד:
יש איזשהו אתר מיושן באנגלית שכל פעם אני מסתבל למצוא אותו שיש שם תיעוד רב והסברים רבים.
https://www.regular-expressions.info?
יש שם המון מידע -
@davidnead כתב בחלום \ אתגר | זיהוי ראשי תיבות של סימני מקורות בקבצי וורד:
לגבי וורד והסימנים המיוחדים שלו - אני חושב שזה ממש לא יכול להיות הדרך לעבודה כזו. זה צריך להיות קוד טהור.
מדובר על קבצי וורד, אני לא חושב שלכתוב פרוייקט בשפה אחרת (שהשואל לא מכיר) הוא פתרון מתאים פה.
ב-VBA אין מימוש של regex נורמלי, רק המוזרים של וורד.
(אולי אפשר לייבא ספרייה)
(אני שופט לפי היסטוריית הפוסטים ש @אוריי מסתדר טוב ב-VBA אבל לא בקי בשפות ופלטפורמות אחרות) -
ראשית כל ברצוני להודות לכל המשיבים שעמלו מזמנם היקר...
לסיכום:
מה שאני צריך לעשות כדי להגיע לתוצאה המיטבית זה כך:- ליצור רשימה של כל הסימנים שיש באקסל או באקסס (כולל גרשיים ומקפים לפי הצורך) א' ב' ג' ... י"א.. י"ב וכו' ולסדר את המילים הרעות כגון תרצ"ח וכו' (או גם וגם).
- לעבור על הרשימה ולסמן אלו אופציות ודאי לא יכול להיות חוץ מסימנים.
- לחפש את כל התוצאות שנשארו ולקבל אותם לתוך טבלה (אקסס או אקסל), עמודה ראשונה 3 מילים לפני, עמודה שניה התוצאה, עמודה שלישית 3 מילים אחרי.
- לעבור על הרשימה ולסמן אלו תוצאות שיש לפניהם מילים שמכריחות סימן ואלו זה וודאי ר"ת בפני עצמם.
- ואת כל השאר שנשארו ספק לסמן בסגנון נפרד ולעבור עליהם ידנית.
כעת עומדות לפני 2 שאלות:
- האם לעשות את הטבלה באקסס או באקסל?
- היות ויש לי עשרות קבצים כאלו (למעלה ממאה) האם לעשות קוד באקסס \ אקסל שיגש לקובץ וורד או ליצור קוד בוורד שיגש לdb שלו שזה אקסס \ אקסל.
-
@yossiz כתב בחלום \ אתגר | זיהוי ראשי תיבות של סימני מקורות בקבצי וורד:
ב-VBA אין מימוש של regex נורמלי, רק המוזרים של וורד.
(אולי אפשר לייבא ספרייה)אפשרי בהחלט. שם הספריה:
Microsoft VBScript Regular Expressions- אפשר להתקין בקישור מוקדם (Early Binding) מתפריט עורך ה-VBA:
Tools > References > Microsoft VBScript Regular Expressions
ולסמן V על הספריה הנ"ל, ואז להשתמש בקוד כך:
Dim RegExp As New RegExp Function RemoveAllButNumbers(s As String) As String With RegExp .Pattern = "\D" .Global = True RemoveAllButNumbers = .Replace(s, "") End With End Function
- או לקשר ישירות בקוד (Late Binding) כך:
Function RemoveAllButNumbers(s As String) As String With CreateObject("VBScript.RegExp") .Pattern = "\D" .Global = True RemoveAllButNumbers = .Replace(s, "") End With End Function
- אפשר להתקין בקישור מוקדם (Early Binding) מתפריט עורך ה-VBA:
-
עברתי קצת על הקובץ, וכן, אני לא רואה בקלות משהו אחיד לכל הראשי תיבות.
אבל אפשר כמובן להוציא מן הכלל הרבה עבודה לפני שמתחילים ידנית, וכמו שכתבת.
רק אוסיף עוד - צריך לבדוק גם אם יש לפני או אחרי מילת הראשי תיבות תווים. לדוגמא אם יש אח"כ נקודה, פסיק, או סגור סוגריים וכדו' וזו תהיה עוד אינדיקציה לעבוד איתה, ולא רק המילים עצמם שלפני ואחרי.פיתחתי משהו דומה - תיקון והגהת טקסט, והלוגיקה דומה קצת. אבל לא מצאתי פתרון קסם...
להחלפות מסוג כזה הפתרון הכי טוב שלי היה להתנהל לפי כללים ברורים מראש בהקלדת החבורות בכל מה שאני ארצה לשנות.בהצלחה!
-
-