עוד דרך - אבל זה עבודת נמלים:
להמיר את הקובץ וורד ל-html ואז לעבור על השדות אחד אחד ולהגדיר אותם כ-editable ולשמור את הפרטים משדות אלו
את ההמרה עשיתי עם convertio ההמה של וורד לא היתה טובה מספיק
עוד דרך - אבל זה עבודת נמלים:
להמיר את הקובץ וורד ל-html ואז לעבור על השדות אחד אחד ולהגדיר אותם כ-editable ולשמור את הפרטים משדות אלו
את ההמרה עשיתי עם convertio ההמה של וורד לא היתה טובה מספיק
@ששא
למה שהמתשמש לא יוריד למחשב, ואז פשוט ישלח לך את הממולא אתה יכול להוסיף גם משהו באתר שאפשר להעלות לך קבצים.
אם תרצה שהמתמש יכול למלאות ולשלוח לך ישירות מתוך האתר תצטרך כבר להשתמש בספריות backend
נ.ב. אתה כותב דוגמא כמו בלבלרון (ז"ל) אבל אין שום דרך לראות למה אתה מתכווין בגלל הז"ל.
@אבי-203 כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:
@pcinfogmach למה זה חשוב? בשביל חיפוש מהיר ברשימה?
כי כשיש התראה בצפון ירושלים זה לא בהכרח בדרום ירושלים - בקיצער זה בעצם כמו שני ערים שונות. ככה הם גם עשו באתר של פיקוד העורף. תודה.
@אבי-203
מדהים! יש אפשרות לחלוקה לפי איזורים?
למשל ירושלים צפון דרום וכו'?
@dovid כתב בהדפדפן ככלי אולטמטיבי לפיתוח GUI:
אם אתה רוצה לשלב ממשק WEB אתה לא יכול לעשות את זה בלי ללמוד פיתוח לWEB
מה בעצם אני צריך ללמוד כדי ללמוד פיתוח WEB
עוד שאלה בנושא הנ"ל:
מה קורה אם אני מפתח תוכנה שאני לא רוצה שהקוד יהיה זמין וקריא ככה בקלות? אם הכל זה קבצי JS ו-html?
@dovid כתב בהדפדפן ככלי אולטמטיבי לפיתוח GUI:
כיום נהייתה אפשרות חדשה, להשתמש בפקד WebView2 המטורף של מייקרוסופט. זה בעצם edge (שזה כרום) עם המון מאפיינים אירועים ופונקציות לשליטה מוחלטת עליו. אפשר להגיש שפקד תיקיית HTML סטטית, ולתקשר דרך הJS עם התוכנה המארחת שיכולה להיות WPF עם C#, אני עשיתי את זה וזה ממש עובד נהדר.
אני משתמש באופציה זו הרבה - מה שמעניין לי שאתה מגדיר אותה כאופציה נהדרת בזמן שאצלי זה רק מקל עלי בגלל סיבה אחת שאני מתעסק עם מסמכים על בסיס טקסט (כלומר מאגרים תורניים).
לולא זה אני מרגיש שאני מפסיד מדאי הרבה כשאני עובר לדפדפן - אני מפסיד את הקלות של ה-debugging, את ה-intellisense העוצמתי של C#, את ההתמשקות העוצמתית של C# עם WPF.
טוב, כתבת שזה קשה אולי לזה התכוונת.
בכל אופן עדיין נותרו לי כמה שאלות ברמה כללית:
א. האם זה לא מאט את זמן הטעינה - לעבוד ככה?
ב. האם יש לי את הגמישות של ה-layout שאני מכיר ב-wpf?
ג. באיזה IDE אוכל להשתמש כדי לייצר אפליקציות בזרימה שאני מכיר מ-C#.
@צדיק-תמים
האם ספריות צד ג' עובדים אופליין? אם כן אשמח לשמוע כיוונים טובים בנושא.
כבר מזמן רציתי לעבור לפיתוח בדפדפן אבל לא מצאתי לכך דרך משביעה רצון. (אני בבורותי מכיר C# wpf - וזהו).
@dovid כתב בשיתוף להערות - maPraqti תוכנה ליצירת מפת מקומות בבית כנסת:
@pcinfogmach שום כלי ושום פלטפורמה כיום לא טובה מספיק כמו הסטאק של הדפדפן.
למשל אם משתמשים בכלי UI שעובד עם פייתון ורוצים שיהיה עיצוב בעת מעבר עכבר (:hover בCSS), זה פי כמה (עשרות? ואולי מאות?) עבודה, תחזוקה, ואי יעילות, מהשורת עיצוב הקלילה בCSS.
הדפדפן זה הכלי האולטימטיבי לפיתוח GUI היום, גם של תוכנות אופליין (כמו VSCODE)
מאוד מעניין מה שאתה אומר: חושבני שזה תלוי מאוד מה אתה עושה דברים פשוטים כמו שתיארת זה נכון. יש גמישות אדירה בדפדפן שאין פשוט אין בנמצא.
מאידך (תתקן אותי אם אני טועה) פקדים מורכבים - צריך הרבה יותר יצירתיות. או ספריות צד שלישי.
אנקוט שני דוגמאות למשל שבבורותי אינני יודע אם הם קשים או לא:
ועוד שאלה: כמדומני שהביצועים של JS מוגבלים אם עושים פעולות כבדות
ועוד שאלה: כמדומני שיש הגבלות חמורות בהרשאות גישה על הדפדפן מסיבות בטיחות.
ועוד שאלה: כמדומני שדפדפן זולל זיכרון - לא?
בקיצור אשמח לשמוע איך בעצם אפשר לתכנת על מלא על בסיס JS -HTML.
@יהודי-טוב כתב בשיתוף להערות - maPraqti תוכנה ליצירת מפת מקומות בבית כנסת:
אני חושב שכבר אין הרבה אנשים כאלו.
אתה טועה. (אני לא מנחש אני אומר לך על בסיס המיילים שאני מקבל מאנשים על התוכנות שלי).
בפרט שהסיכויים שהתוכנה תהיה בשימוש או על ידי הגבאי במחשב של בית הכנסת או על ידי בחור שהשיג איזשהו מחשב לפני ראש השנה יו"כ.
בכל אופן גם אתר ובפרט אתר סטטי אפשר להנגיש בלי חיבור לאינטרנט.
@dovid
השאלה היא האם זה חייב להיות אתר - הסיכויים שאנשים יעדיפו תוכנה ללא חיבור לאינטרנט.
איפה שהאתר אוחז עכשיו כמדומני שהבינה תייצר בפייתון תוך רגעים ספורים על ידי שיראו לה את התמונה בלבד.
בכל אופן אם הרב @מעלה-ומוריד הולך להמשיך עם האתר ההמלצה שלי היא:
כתוב הוראות מפורטות אך ממוקודות פרק את התוכנה לכמה שיותר פונקציות נפרדות. אחרת תצטרך ממש להילחם עם הבינה.
או יותר טוב קח דקה לנסות לקרוא באינטרנט על הפונקציה שאתה רוצה כך תדע מה לומר לבינה לעשות.
ויותר חשוב מהכל - לא מצליח לעשות משהו - תשאל! לזה נועד הפורום. הרבה הצלחה. באמת רעיון מדהים.
@מעלה-ומוריד כתב בשיתוף להערות - maPraqti תוכנה ליצירת מפת מקומות בבית כנסת:
מילתא גנאה דאית בי אומר מיד - אינני מתכנת. אני כן יודע לקרוא קוד פחות או יותר. אבל כמובן אין לי ההבנה וההתמחות לעשות עשירית מהמיני תוכנה הזו.
לא יודע איזה שפת תיכנות התוכנה ומה היכולות שלך. אבל לפי התוכנה הייתי ממליץ לך על פייתון. בשפה זו הבינה הכי מצליחה לייצר דברים מורכבים וטובים עם הכי פחות ידע מצד המתכנת. לא ניסייתי זאת אישית אבל זה מה שהבנתי מפוסטים שונים במתמחים טופ.
אגב אתה יכול להראות לבינה תמונות לא תמיד אתה חייב לתאר במילים מה אתה עושה. אז אפ אתה מתקשה להסביר לה משהו תייצר תמונה של זה אולי זה יעזור.
עוד עצה - שמור על פרופיל נמוך בנה תוכנה בסיסית רק עם מה שנצרך אמת, ככל שתעשה משהו יותר משוכלל יותר תסתבך עם הבינה.
@שוהם307
האם התקנת פונטים אחרים לאחרונה?
אם יצא לכם לעבוד עם TreeView ב-WPF ולהציג בו הרבה נתונים, אולי נתקלתם בהאטה בביצועים — במיוחד כשיש הרבה Nodes טעונים מראש.
בפקדים מבוססי רשימות (כמו ListBox), ניתן לפתור זאת על ידי שימוש ב-Virtualization, שמונעת טעינה של פריטים שלא מוצגים כרגע. אך TreeView, בשל המבנה ההיררכי שלו, לא תומך ב-Virtualization בצורה יעילה.
לכן, יצרתי פתרון פשוט שמדמה את ההתנהגות הזו על ידי טעינה עצלנית (Lazy Loading) של התוכן. זה לא רעיון חדש, אבל שווה להזכיר למי שלא מכיר או שכח שיש דרך לשפר את הביצועים בצורה ניכרת.
איך זה עובד בפועל:
כשפריט נטען לראשונה (Loaded), מוצג רק placeholder כדי להימנע מטעינה מיותרת.
רק בעת פתיחה (Expanded), נטענים בפועל הנתונים מה-ViewModel.
בעת סגירה (Collapsed), הנתונים מתחלפים שוב ב-placeholder — שחרור פשוט של משאבים.
שימו לב! במקרה זה אל תשתמשו ב-itemsource עבור HierarchicalDataTemplate ב- Xaml
להלן קוד דוגמא שמיישם את ההתנהגות הזו:
אשמח לקבל הצעות לשיפור:
כמו"כ אשמח לשמוע רעיונות איך להפוך את זה למשהו יותר כללי (כרגע הוא מגבל לסוג datacontext מסויים מאוד.
using System.Windows.Controls;
using System.Windows;
using Otzarnik.FsViewer;
using System.Collections.Generic;
namespace Oztarnik.Helpers
{
public static class TreeItemVirtualizationBehavior
{
public static bool GetEnableVirtualization(DependencyObject obj) =>
(bool)obj.GetValue(EnableVirtualizationProperty);
public static void SetEnableVirtualization(DependencyObject obj, bool value) =>
obj.SetValue(EnableVirtualizationProperty, value);
public static readonly DependencyProperty EnableVirtualizationProperty =
DependencyProperty.RegisterAttached("EnableVirtualization", typeof(bool), typeof(TreeItemVirtualizationBehavior),
new PropertyMetadata(false, OnEnableVirtualizationChanged));
private static void OnEnableVirtualizationChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (d is TreeViewItem item && e.NewValue is bool enabled)
{
if (enabled)
{
item.Expanded += OnItemExpanded;
item.Collapsed += OnItemCollapsed;
item.Loaded += Item_Loaded;
}
else
{
item.Expanded -= OnItemExpanded;
item.Collapsed -= OnItemCollapsed;
item.Loaded -= Item_Loaded;
}
}
}
private static void Item_Loaded(object sender, RoutedEventArgs e)
{
if (sender is TreeViewItem treeViewItem &&
treeViewItem.DataContext is TreeItem treeItem &&
treeItem.Items?.Count > 0)
treeViewItem.ItemsSource = new List<string> { "" };
}
private static void OnItemExpanded(object sender, RoutedEventArgs e)
{
if (sender is TreeViewItem treeViewItem &&
treeViewItem.DataContext is TreeItem treeItem &&
treeItem.Items?.Count > 0)
treeViewItem.ItemsSource = treeItem.Items;
}
private static void OnItemCollapsed(object sender, RoutedEventArgs e)
{
if (sender is TreeViewItem treeViewItem &&
treeViewItem.DataContext is TreeItem treeItem &&
treeItem.Items?.Count > 0)
treeViewItem.ItemsSource = new List<string> { ""};
}
}
}
בעניין החלפות עבור שמות הקדושים במאגר תורני
יש לי קוד רגקס שמחליף שם הו-יה די בקלות השאלה מה עם שאר השמות הקדושים:
למשל ענין מורכב הרבה יותר הוא החלפת שמות אחרים [כגון א-להים ב'אלקים' וכיו"ב].
הבעיה הגדולה שהם 'שמות משותפים' המופיעים גם בהקשר של חול, ואפילו 'אלהים אחרים' [את זה עצמו קל למצוא, אבל ישנם מקומות שלא כתוב 'אחרים'...]
יש מקומות שאפשר לזהות על ידי ההקשר, ישנם מקומות מסופקים או שהם תלויים במחלוקת.
האם יש רעיון איך להגדיר כלל ברור להחלפתם?
כמו"כ האם יש צורך להחליף גם את שאר השמות כמו שם אדנות וכו'
אם אתם עובדים עם Regex.Match או לולאות שמחזירות מופעים של Match, חשוב שתדעו: אובייקט ה-Match שומר הפניה למחרוזת המקורית שנבדקה. המשמעות היא שכל עוד אתם שומרים את אובייקט ה-Match בזיכרון — גם המחרוזת המקורית תישמר.