דילוג לתוכן
0
  • דף הבית
  • חוקי הפורום
  • פוסטים אחרונים
  • לא נפתר
  • פופולרי
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
  • דף הבית
  • חוקי הפורום
  • פוסטים אחרונים
  • לא נפתר
  • פופולרי
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
לוגו אתר

פורום אוצריא

הסבר על האימות הטלפוני
אוצריא - דף הבית
|
קח שותפות בהוספת ספרים
|
תרום לאוצריא
  1. דף הבית
  2. הוספת ספרים לספריית אוצריא
  3. מדריך | יצירת קטלוג של הספרים באוצריא

מדריך | יצירת קטלוג של הספרים באוצריא

מתוזמן נעוץ נעול הועבר הוספת ספרים לספריית אוצריא
7 פוסטים 4 כותבים 75 צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מ מחובר
    מ מחובר
    מעמע
    כתב נערך לאחרונה על ידי מעמע
    #1

    כמדומני שאין קטלוג מסודר של הספרים באוצריא.

    באחד הפוסטים נכתב על קובץ SourcesBooks.CSV שמכיל את הרשימה. שזו אותה רשימה שנמצאת במסך הספריה.

    החיסרון הוא למי שרוצה לראות בסקירה את כל הספרים יחד, בלי לפתוח תקיה תקיה, ומצד שני בלי כפילות (לוגית) מיותרת כמו שמופיע חידושי הרן על כל מסכת (רן על ברכות ורן על מגילה). כי בסוף רוצים לראות את שמות הספרים ולא כמה חלקים יש מכל ספר.

    הפתרון שכרגע מצאתי, הוא סינון של הרשימה באקסל.

    מצורף דוגמא לסינון שעשיתי:

    חוברת1.xlsx

    הסברים:

    בתוכנת אקסל > נתונים > מCSV ולפתוח בתוך תקית אוצריא את תקית אודות ולפתוח את קובץ SourcesBooks.
    a035a837-a836-4a91-acb3-e9dbfa976be2-image.png

    לטעון את הנתונים.
    5a4b56ed-7bfd-4a39-a20a-befa41bf252e-image.png

    לעמוד על התא החדש שבשורה הראשונה משמאל לטבלה, והזין את הפונקציה הזאת ולאשר.

    =TRIM(LEFT(A2, IFERROR(FIND(" על ", A2), LEN(A2)+1)-1))
    

    3f6d3a87-fc84-430b-9c7a-fdd74d34e4b9-image.png

    תווצר אוטומטית עמודה חדשה על כל הטבלה.
    עכשיו ניתן ללחוץ על הסר כפילות.

    ואם נשנה את המילה על שבפונקציה לרשימה הזאת ונסיר כפילות כל פעם, נשאר רק עם הרשימה האמיתית.

    על, חלק, שולחן, וכדו' 
    

    הפונקציה חותכת את שאר התא כך שאפשר לצמצם בקלות את הרשימה.
    36885d04-94d6-4895-8932-1ad00fc8a858-image.png

    רק חשוב לציין שצריך להסיר רק כפילות של העמודה החדשה שהיא זו שמסננת, ולא למשל את המספרי שורה שאולי יש 2 ספרים עם אותו מספר שורות.
    19da1f3a-6a6a-4ef4-bf32-f724b5ba80bf-image.png
    כמובן שזה אקסל וניתן למיין ולהדפיס.

    מסתבר שמישהו יכול פשוט ליצור תוכנה קטנה. אבל בינתיים זה מאפשר סקירה מהירה על כל המאגר.

    ושוב הרשימה: חוברת1.xlsx

    הבל הבליםה תגובה 1 תגובה אחרונה
    2
    • מ מעמע

      כמדומני שאין קטלוג מסודר של הספרים באוצריא.

      באחד הפוסטים נכתב על קובץ SourcesBooks.CSV שמכיל את הרשימה. שזו אותה רשימה שנמצאת במסך הספריה.

      החיסרון הוא למי שרוצה לראות בסקירה את כל הספרים יחד, בלי לפתוח תקיה תקיה, ומצד שני בלי כפילות (לוגית) מיותרת כמו שמופיע חידושי הרן על כל מסכת (רן על ברכות ורן על מגילה). כי בסוף רוצים לראות את שמות הספרים ולא כמה חלקים יש מכל ספר.

      הפתרון שכרגע מצאתי, הוא סינון של הרשימה באקסל.

      מצורף דוגמא לסינון שעשיתי:

      חוברת1.xlsx

      הסברים:

      בתוכנת אקסל > נתונים > מCSV ולפתוח בתוך תקית אוצריא את תקית אודות ולפתוח את קובץ SourcesBooks.
      a035a837-a836-4a91-acb3-e9dbfa976be2-image.png

      לטעון את הנתונים.
      5a4b56ed-7bfd-4a39-a20a-befa41bf252e-image.png

      לעמוד על התא החדש שבשורה הראשונה משמאל לטבלה, והזין את הפונקציה הזאת ולאשר.

      =TRIM(LEFT(A2, IFERROR(FIND(" על ", A2), LEN(A2)+1)-1))
      

      3f6d3a87-fc84-430b-9c7a-fdd74d34e4b9-image.png

      תווצר אוטומטית עמודה חדשה על כל הטבלה.
      עכשיו ניתן ללחוץ על הסר כפילות.

      ואם נשנה את המילה על שבפונקציה לרשימה הזאת ונסיר כפילות כל פעם, נשאר רק עם הרשימה האמיתית.

      על, חלק, שולחן, וכדו' 
      

      הפונקציה חותכת את שאר התא כך שאפשר לצמצם בקלות את הרשימה.
      36885d04-94d6-4895-8932-1ad00fc8a858-image.png

      רק חשוב לציין שצריך להסיר רק כפילות של העמודה החדשה שהיא זו שמסננת, ולא למשל את המספרי שורה שאולי יש 2 ספרים עם אותו מספר שורות.
      19da1f3a-6a6a-4ef4-bf32-f724b5ba80bf-image.png
      כמובן שזה אקסל וניתן למיין ולהדפיס.

      מסתבר שמישהו יכול פשוט ליצור תוכנה קטנה. אבל בינתיים זה מאפשר סקירה מהירה על כל המאגר.

      ושוב הרשימה: חוברת1.xlsx

      הבל הבליםה מחובר
      הבל הבליםה מחובר
      הבל הבלים
      צוות פיקוח
      כתב נערך לאחרונה על ידי
      #2

      @מעמע אולי תעלה את התוצאה שלך?
      אולי אנשים ייהנו מזה.

      תגובה 1 תגובה אחרונה
      0
      • יום חדש מתחילי מנותק
        יום חדש מתחילי מנותק
        יום חדש מתחיל
        מנהל ספריית אוצריא
        כתב נערך לאחרונה על ידי
        #3

        @מעמע יש לך טעות גדולה. אין שום כפילויות בספרים.
        אני ממש לא מבין על איזה כפילויות אתה מדבר!!!
        אשמח שתכתוב כאן אפילו כפילות אחד שמצאת!

        הבל הבליםה תגובה 1 תגובה אחרונה
        0
        • יום חדש מתחילי יום חדש מתחיל

          @מעמע יש לך טעות גדולה. אין שום כפילויות בספרים.
          אני ממש לא מבין על איזה כפילויות אתה מדבר!!!
          אשמח שתכתוב כאן אפילו כפילות אחד שמצאת!

          הבל הבליםה מחובר
          הבל הבליםה מחובר
          הבל הבלים
          צוות פיקוח
          כתב נערך לאחרונה על ידי הבל הבלים
          #4

          @יום-חדש-מתחיל הוא מדבר על "חידושי הרן על בבא קמא" ו"חידושי הרן על בבא מציעא", לא על ספר שיש אותו פעמיים.

          מ תגובה 1 תגובה אחרונה
          2
          • הבל הבליםה הבל הבלים

            @יום-חדש-מתחיל הוא מדבר על "חידושי הרן על בבא קמא" ו"חידושי הרן על בבא מציעא", לא על ספר שיש אותו פעמיים.

            מ מחובר
            מ מחובר
            מעמע
            כתב נערך לאחרונה על ידי מעמע
            #5

            @הבל-הבלים נכון. אני התכוונתי לכפילות לוגית, שרוצים את שם הספר עצמו ולא את הכרכים שיש לכל ספר, כמו חלק א חלק ב.

            עדכנתי את הפוסט הראשון, וגם צירפתי דוגמא שסיננתי.

            תגובה 1 תגובה אחרונה
            1
            • יאיר דניאלי מנותק
              יאיר דניאלי מנותק
              יאיר דניאל
              כתב נערך לאחרונה על ידי יום חדש מתחיל
              #6

              מצורף קוד פייתון שעושה את העבודה - וגם קוד מקומפל לתוכנה.
              הקוד יוצר קובץ אקסל עם עמודות מסודרות - של שם הספר והנתיב שלו.
              הוא מסיר כפילויות של:
              " על ", " חלק ", " שולחן ", "-", "מסכת"

              אם אתם רוצים להוסיף כפילויות נוספות - פשוט תכניסו אותם לקובץ cut_words.json המצורף.
              (-גם בלי הקובץ הנ"ל הקוד מסיר בכל מקרה את הכפילויות הנ"ל)

              import os
              import sys
              import json
              import csv
              import tkinter as tk
              from tkinter import filedialog, messagebox
              from openpyxl import Workbook
              from openpyxl.worksheet.table import Table, TableStyleInfo
              
              # ==================================================
              # הגדרות
              # ==================================================
              DEFAULT_PATH = r"C:\אוצריא\אוצריא\אודות התוכנה\SourcesBooks.csv"
              REQUIRED_NAME = "SourcesBooks.csv"
              CONFIG_PATH = os.path.join(os.getenv("APPDATA", os.getcwd()), "sourcesbooks_config.json")
              OUTPUT_XLSX = os.path.join(os.path.expanduser("~"), "Desktop", "רשימת_ספרים.xlsx")  # שמירה על שולחן העבודה
              
              # טען רשימת חיתוך חיצונית (אפשר לערוך cut_words.json)
              CUT_WORDS_FILE = "cut_words.json"
              if os.path.isfile(CUT_WORDS_FILE):
                  with open(CUT_WORDS_FILE, encoding="utf-8") as f:
                      data = json.load(f)
                      CUT_WORDS = data.get("cut_words", [])
              else:
                  # ברירת מחדל אם אין קובץ חיצוני
                  CUT_WORDS = [" על ", " חלק ", " שולחן ", "-", "מסכת"]
              
              # ==================================================
              # איתור הקובץ
              # ==================================================
              def load_saved_path():
                  if os.path.isfile(CONFIG_PATH):
                      try:
                          with open(CONFIG_PATH, encoding="utf-8") as f:
                              data = json.load(f)
                              path = data.get("path")
                              if path and os.path.isfile(path):
                                  return path
                      except Exception:
                          pass
                  return None
              
              def save_path(path):
                  os.makedirs(os.path.dirname(CONFIG_PATH), exist_ok=True)
                  with open(CONFIG_PATH, "w", encoding="utf-8") as f:
                      json.dump({"path": path}, f, ensure_ascii=False, indent=2)
              
              def choose_file():
                  root = tk.Tk()
                  root.withdraw()
                  messagebox.showinfo(
                      "בחירת קובץ",
                      f'הקובץ "{REQUIRED_NAME}" לא נמצא.\n\n'
                      f'אנא נווט לקובץ בשם "{REQUIRED_NAME}"'
                  )
              
                  while True:
                      path = filedialog.askopenfilename(
                          title=f'בחר את הקובץ "{REQUIRED_NAME}"',
                          filetypes=[("CSV files", "*.csv"), ("All files", "*.*")]
                      )
                      if not path:
                          messagebox.showerror("בוטל", "לא נבחר קובץ. התוכנית תיסגר.")
                          sys.exit(1)
                      if os.path.basename(path) != REQUIRED_NAME:
                          messagebox.showerror("שם קובץ שגוי", f"נדרש לבחור קובץ בשם:\n{REQUIRED_NAME}")
                          continue
                      return path
              
              def locate_sourcesbooks():
                  if os.path.isfile(DEFAULT_PATH):
                      save_path(DEFAULT_PATH)
                      return DEFAULT_PATH
                  saved = load_saved_path()
                  if saved:
                      return saved
                  chosen = choose_file()
                  save_path(chosen)
                  return chosen
              
              # ==================================================
              # ניקוי שם ספר לפי CUT_WORDS + מסכת + "-"
              # ==================================================
              def clean_title(title: str) -> str:
                  t = title
                  # חיתוך לפי CUT_WORDS
                  first_idx = len(t)
                  for w in CUT_WORDS:
                      idx = t.find(w)
                      if idx != -1 and idx < first_idx:
                          first_idx = idx
                  t = t[:first_idx].strip()
              
                  # חיתוך לפי "מסכת" אם היא מופיעה כמילה שלישית
                  words_after_cut = t.split()
                  if len(words_after_cut) >= 3 and "מסכת" in CUT_WORDS and words_after_cut[2] == "מסכת":
                      t = " ".join(words_after_cut[:2]).strip()
              
                  return t
              
              # ==================================================
              # קריאה וייצוא לאקסל (בלי טור מקור הקובץ)
              # ==================================================
              def export_to_excel(csv_path):
                  books_set = set()
                  books_list = []
              
                  with open(csv_path, encoding="utf-8", newline="") as f:
                      reader = csv.reader(f)
                      for row in reader:
                          if not row:
                              continue
                          raw = row[0].strip()
                          if raw:
                              clean_name = clean_title(raw)
                              if clean_name not in books_set:
                                  books_set.add(clean_name)
                                  books_list.append({
                                      "name": clean_name,
                                      "file_path": os.path.dirname(csv_path)
                                  })
              
                  books_list.sort(key=lambda x: x["name"])
              
                  wb = Workbook()
                  ws = wb.active
                  ws.title = "ספרים"
              
                  # הגדרת כיוון מימין לשמאל
                  ws.sheet_view.rightToLeft = True
              
                  # כותרות
                  ws.append(["מספר", "שם הספר", "נתיב הקובץ"])
              
                  for i, book in enumerate(books_list, start=1):
                      ws.append([i, book["name"], book["file_path"]])
              
                  table = Table(displayName="BooksTable", ref=f"A1:C{len(books_list)+1}")
                  style = TableStyleInfo(
                      name="TableStyleMedium9",
                      showFirstColumn=False,
                      showLastColumn=False,
                      showRowStripes=True,
                      showColumnStripes=False
                  )
                  table.tableStyleInfo = style
                  ws.add_table(table)
              
                  # רוחב עמודות מותאם
                  ws.column_dimensions["A"].width = 8
                  ws.column_dimensions["B"].width = 55
                  ws.column_dimensions["C"].width = 80
              
                  wb.save(OUTPUT_XLSX)
              
              # ==================================================
              # MAIN
              # ==================================================
              if __name__ == "__main__":
                  sourcesbooks_path = locate_sourcesbooks()
                  print("✔ נמצא הקובץ:", sourcesbooks_path)
              
                  export_to_excel(sourcesbooks_path)
                  print(f"✔ נוצר קובץ אקסל: {OUTPUT_XLSX}")
              
                  input("\nסיום – לחץ Enter כדי לצאת")
              
              

              cut_words.json

              הנה הקוד פייתון להורדה:
              ExportBooks.PY

              והנה כתוכנה:
              ExportBooks.exe

              והנה - הקובץ אקסל שנוצר - "רשימת ספרים" בשולחן העבודה.
              רשימת_ספרים.xlsx

              "כִּי רָצוּ עֲבָדֶיךָ אֶת אֲבָנֶיהָ וְאֶת עֲפָרָהּ יְחֹנֵנוּ"

              תגובה 1 תגובה אחרונה
              2
              • מ מחובר
                מ מחובר
                מעמע
                כתב נערך לאחרונה על ידי
                #7

                וואו... מעולה, בדיוק לזה התכוונתי!
                הערה קטנה: הנתיב של הספרים לא לפי הספר ובכל הספרים הנתיב הוא C:\אוצריא\אוצריא\אודות התוכנה.

                תגובה 1 תגובה אחרונה
                1

                • התחברות

                • אין לך חשבון עדיין? הרשמה

                • התחברו או הירשמו כדי לחפש.
                • פוסט ראשון
                  פוסט אחרון