עזרה ב localstorage היכן צריך לשים אותואנונימי (פותח)
Product.prototype.addToHtml = function () {
var newBox = document.createElement("div");
newBox.className = "col-5 border border-grey mx-2 mytojeson2 mb-2";
this.parent.appendChild(newBox);

newBox.innerHTML += "

" + this.name + "

";
newBox.innerHTML += "
מחיר:" + this.price + " ₪
";
newBox.innerHTML += "
כמות:" + this.amount + " פריטים
";

}



var prod_ar = [

]

window.onload = function () {
showProd();
add_btn.onclick = function () {
var obj = {
name: id_name.value,
price: id_price.value,
amount: id_amount.value
}


prod_ar.push(obj);
showProd();


}

}

function showProd() {
id_parent.innerHTML = "";
for (var i in prod_ar) {
var item = prod_ar[i];
var newProd = new Product(item.name, item.price, item.amount, id_parent);
newProd.addToHtml();


}
}
איזה מידע אתה רוצה לשמור?איזה_טוב_ה'_
וכשמביאים קוד כדאי להביא קישור לאתר כמו זה
https://codepen.io כי קצת קשה לקרוא קוד שמיושר לימין
הסתכלתי בקישורים ולא כל כך הבנתי לכן שאלתישניאור770
אני רוצה לשמור את הגייסון הדינמי
Var prod_ar
לא ברורה השאלהעוקר הרים

בכל מקרה הנה קישורים לתיעוד של localStorage:

Window.localStorage

HTML5 Web Storage

הסתכלתי בכישורים ולא כל כך הבנתי לכן שאלתישניאור770
אני רוצה לגרום לתוכן לא ישמר גם אחרי שעושים ריפרש זה יכול להיות ‏session storage או local storage
מקווה שהבנתי מה אתה צריךעוקר הרים

הדוגמה שלך מביאה חלק מקוד שלא ניתן עד הסוף להבין את כולו.

 

ההבדל בין session storage לבין local storage זה ש-local נשאר כל הזמן כל עוד שהוא לא נמחק אקטיבית.

session נמחק כשהכרטיסיה נסגרת, אבל נשאר אפילו אם רפרשו את הכרטיסיה.

 

ה-api של שניהם זהה ומאוד פשוט.

 

(כל הדוגמאות הבאות הן עם localStorage, אבל יעבדו גם עם sessionStorage).

נניח שאני רוצה לשמור אובייקט של משתמש:

const user = {name: 'moshe', age: 82, job: 'teacher', id: 1};
localStorage.setItem('user_settings', user); 

כעת האובייקט שמור בדפדפן של המשתמש. ניתן לראות אותו בכלי הפיתוח (F12) בכרום בטאב Application ובפיירפוקס בטאב storage.

 

כשאני רוצה לקבל את האובייקט:

 

const user = localStorage.getItem('user_settings');
console.log(user);

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

user.job = 'programmer';
localStorage.setItem('user_settings', user); 

אפשר גם למחוק פריט ספציפי באמצעות localStorage.removeItem או למחוק את כל ה-storage באמצעות localStorage.clear.

קודם כל תודה רבה לך!!שניאור770
שנית, את רוב שכתבת אני יודע
רק אני צריך עזרה לדעת מה לשים בlocalstorage
ב key וגם ב value
והיכן הוא צריך להיות ממוקם...
אתה יודע להבין מהקוד?
מנסה לענות, מקווה שהבנתי מה אתה צריךעוקר הרים

ב-key יכול להיות כל string שבא לך.

ב-value את prod_ar.

 

עקרונית כשהקוד נטען אתה צריך לשים ב-prod_ar את הערך מה-storage.

כל פעם ש-prod_ar משתנה אתה צריך לעדכן את ה-storage.

 

לצורך הדוגמה נניח שה-key הוא 'products' (שוב, יכול להיות מה שבא לך).

var prod_ar = localStorage.getItem('products') || [];

window.onload = function () {
    showProd();
    add_btn.onclick = function () {
        var obj = {
            name: id_name.value,
            price: id_price.value,
            amount: id_amount.value
        };
        prod_ar.push(obj);
        localStorage.setItem('products', prod_ar);
        showProd();
    };
};

 

 

 

זה כבר נראה יותר טובשניאור770
אבל זה ג'ייסון ויש עוד משהו להוסיף
איך ומה?
https://codepen.io/shneor-bachar/full/WWByGGשניאור770
יש גם קישור של ה html
לא הבנתי מה אתה שואלעוקר הרים

בקישור של ה-codepen הקוד זהה למה שהיה קודם.

אני אומר שזה עדיין לא עובדשניאור770
והוא עושה שגיאה שמראה את הפריטים כ undefined
יכול להיות שזה בגלל שזה ג'ייסון ואין את הparse??
תוכל לתקן את זה?
שלחתי את הקישור כי שם אתה יכול לראות מה מציג הhtml..
תשמע,עוקר הרים

אני לא הולך לדבג את הקוד במקומך.

אתה צריך לדבג ולראות מה נכנס ומה קורה עם זה.

צריך להוסיף לשמירה stringifyעוקר הרים

ולהוצאה צריך לעשות parse

setItem עושה JSON.stringify אוטומטית?משה

לא ידעתי. הפתעה.

 

אני עוד תקוע עם מחלקה שכתבתי לפני שנים בשם INNData (חפש בקוד מקור פה), שעבדה עם כלים אחרים לפני שהמציאו את localStorage.

 

צודק, צריך לעשות stringifyעוקר הרים


אני לא כל כך יודע איך לעשות את זהשניאור770
לכן ביקשתי לראות כדי שאדע מכאן ולהבא
אם תוכל, מאוד אשמח!
אם לא, לא נורא
עזרת לי המון!
הנהעוקר הרים
var prod_ar = JSON.parse(localStorage.getItem('products')) || [];

window.onload = function () {
    showProd();
    add_btn.onclick = function () {
        var obj = {
            name: id_name.value,
            price: id_price.value,
            amount: id_amount.value
        };
        prod_ar.push(obj);
        localStorage.setItem('products', JSON.stringify(prod_ar));
        showProd();
    };
};

 

ישר כח עצוםשניאור770
זה הזייה עכשיו הכפתור לו עובד
תבדוק שוב, זה אמור לעבוד כמו שאיזה_טוב_ה'_

@עוקר הרים רשם לך

 

 

ישר כח ענק ענק ענק!שניאור770
אגב, למה onload ?משה

בגלל showProd?

 

עדיף להירשם לארוע אחרי שה-DIV קיים על העמוד. חבל על עוד רבע שניה.

אני זרמתי עם הדוגמה שהוא הביאעוקר הרים

מסכים עם ההערה שלך.

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


כשיש לך אתר חדשותעוקר הרים

קרצייה של ביצועים זה הבדל של עשרות אחוזים בטראפיק.

במקרה דנן, כנראה שיש כמה דברים ללמוד קודם...

גם לא באתר חדשותמשה

תחשוב על הפורומים, שם זה הרבה יותר מסובך...

אתה בטח מבין בזה יותר ממניעוקר הרים

אבל מניחוש שלי רבע שנייה באתר פורומים הרבה הרבה פחות משמעותית מכתבת חדשות.

כמובן שבכל מקום טעינה מהירה משפרת.

לא לא. אתר איטי מוציא את החשק להגיב עודמשהאחרונה

יש לי הרבה דוגמאות לזה, אבל זה מחוץ להקשר השרשור הזה.

מישהו יכול לבדוק את הקוד הזה? בפייתוןאדיר לוייי

זה צריך להיות לתוכנה שמתרגמת שמות קבצים ומסדרת אותם

נעשה עם gpt

לטענתה הכל מושלם ןיציב אבל רוצה לשמוע שזה עבד מושלם בפועל

זה הקוד:


import os

import json

import shutil

import re

from pathlib import Path

from PySide6.QtWidgets import (

   QApplication, QWidget, QVBoxLayout, QPushButton,

   QFileDialog, QTableWidget, QTableWidgetItem, QMessageBox

)

from PySide6.QtCore import Qt


BASE_DIR = Path(__file__).parent

ARTISTS_FILE = BASE_DIR / "artists.json"

UNDO_FILE = BASE_DIR / "undo_log.json"


# ---------- Utils ----------


def load_artists():

   if ARTISTS_FILE.exists():

       with open(ARTISTS_FILE, "r", encoding="utf-8") as f:

           return json.load(f)

   return {}


def save_artists(data):

   with open(ARTISTS_FILE, "w", encoding="utf-8") as f:

       json.dump(data, f, ensure_ascii=False, indent=2)


def clean_name(name):

   name = re.sub(r"[_\-\.]", " ", name)

   name = re.sub(r"[\"\'`]", "", name)

   name = re.sub(r"\s+", " ", name)

   return name.strip()


def transliterate_hebrew(text):

   table = {

       "א": "a", "ב": "b", "ג": "g", "ד": "d", "ה": "h",

       "ו": "v", "ז": "z", "ח": "ch", "ט": "t",

       "י": "i", "כ": "k", "ל": "l", "מ": "m",

       "נ": "n", "ס": "s", "ע": "a", "פ": "p",

       "צ": "tz", "ק": "k", "ר": "r", "ש": "sh",

       "ת": "t", "ך": "k", "ם": "m", "ן": "n",

       "ף": "f", "ץ": "tz"

   }

   return "".join(table.get(c, c) for c in text)


# ---------- Main App ----------


class TuneMaster(QWidget):

   def __init__(self):

       super().__init__()

       self.setWindowTitle("TuneMaster – Safe Rename")

       self.resize(800, 500)


       self.layout = QVBoxLayout(self)


       self.btn_select = QPushButton("בחר תיקייה")

       self.btn_execute = QPushButton("בצע שינויים")

       self.btn_undo = QPushButton("בטל שינויים")


       self.table = QTableWidget(0, 3)

       self.table.setHorizontalHeaderLabels(["מקור", "חדש", "נתיב מלא"])

       self.table.horizontalHeader().setStretchLastSection(True)


       self.layout.addWidget(self.btn_select)

       self.layout.addWidget(self.table)

       self.layout.addWidget(self.btn_execute)

       self.layout.addWidget(self.btn_undo)


       self.btn_select.clicked.connect(self.select_folder)

       self.btn_execute.clicked.connect(self.execute)

       self.btn_undo.clicked.connect(self.undo)


       self.preview = []

       self.artists = load_artists()


   def select_folder(self):

       folder = QFileDialog.getExistingDirectory(self, "בחר תיקייה")

       if not folder:

           return


       self.preview.clear()

       self.table.setRowCount(0)


       for root, _, files in os.walk(folder):

           for f in files:

               path = Path(root) / f

               stem = path.stem

               ext = path.suffix


               clean = clean_name(stem)


               new_name = None

               for he, en in self.artists.items():

                   if he in clean:

                       new_name = clean.replace(he, en)

                       break


               if not new_name:

                   new_name = transliterate_hebrew(clean)


               new_full = new_name + ext

               if new_full != f:

                   self.preview.append((path, path.with_name(new_full)))


       for old, new in self.preview:

           row = self.table.rowCount()

           self.table.insertRow(row)

           self.table.setItem(row, 0, QTableWidgetItem(old.name))

           self.table.setItem(row, 1, QTableWidgetItem(new.name))

           self.table.setItem(row, 2, QTableWidgetItem(str(old)))


   def execute(self):

       if not self.preview:

           return


       undo_data = []

       for old, new in self.preview:

           if new.exists():

               continue

           shutil.move(str(old), str(new))

           undo_data.append({"from": str(new), "to": str(old)})


       with open(UNDO_FILE, "w", encoding="utf-8") as f:

           json.dump(undo_data, f, indent=2, ensure_ascii=False)


       QMessageBox.information(self, "בוצע", "השינויים בוצעו בהצלחה")


   def undo(self):

       if not UNDO_FILE.exists():

           QMessageBox.warning(self, "אין", "אין מה לבטל")

           return


       with open(UNDO_FILE, "r", encoding="utf-8") as f:

           undo_data = json.load(f)


       for item in undo_data:

           if Path(item["from"]).exists():

               shutil.move(item["from"], item["to"])


       UNDO_FILE.unlink()

       QMessageBox.information(self, "בוטל", "כל השינויים בוטלו")


# ---------- Run ----------


if __name__ == "__main__":

   app = QApplication([])

   win = TuneMaster()

   win.show()

   app.exec()

מצחיקנקדימון
אתה מודע לזה שאין סיכוינפשי תערוג

שמישהו עם ראש על הכתפיים יריץ קוד שמישהו אחר כתב.

נכון?


לא הבנתי מה הבעיה שלך להריץ אותו.

תוריד vc code ותריץ

ומעבר לזהמבולבלת מאדדדד
בפייתון הרווחים קריטיים.


אני לא חושבת שלהעתיק מפה יעבוד. 

אתה לא צריך אותנוultracrepidam

תכתוב "run python online" ותראה אופציות להרצה.

 

ואם אתה רוצה ממש להשקיע תוריד את התוכנות הנדרשות ותריץ עצמאית

זה לא יעבוד עם online pythonנפשי תערוגאחרונה

כי הוא צריך לעבוד עם קבצים

ואיך הוא יראה שינוי בשם הקובץ?

משרה ממשלתיתאונמר

כן או לא?

יתרונות חסרונות?

אין לי מושג מה זה אומר ואשמח לכל מידע שיש לכם.

בנוסף - כמה אני אמורה להגיד ציפיות שכר, אם אני ניגשת למכרז - יש לי 3 שנים ניסיון full stack.

 

תודה לכם🙏

העסקה ישירה או דרך מיקור-חוץ? אם העסקה ישירה, האםפ.א.

בחוזה אישי או הסכם עבודה קיבוצי? יש ועד עובדים?

 

משכורת גלובלית או לפי שעון נוכחות?
 

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


 

התנאים במשרד החנוך אינם התנאים במשרד הביטחון, למשל.  

הייאונמר

מיקור חוץ.

מאמינה שלפי שעון נוכחות.

דרך מיקור חוץ השכר גבוה מאשר עובדי מדינה באותו תפקפ.א.

תפקיד.  


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


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


החסרון הבסיסי והגדול - חוץ מהשכר, אין שום תנאים נלווים שווים.  


ההעסקה דרך מיקור חוץ במשרה ממשלתית - לברר בזמן הצגת הצעת השכר האם המשרה והשכר נמצאים תחת מגבלת מכסת שעות שנתיות של המעסיק.  

לדוגמה האם זה לפי ממוצע 180 שעות בחודש כפול 12 חודשים, 2160 שעות שנתיות.  


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

אוקיי. תודה רבה!!אונמראחרונה
אני לא מבין בשכר בממשלהמשה

בגדול, זה נחשב מקומות עבודה יציבים יותר שמשלמים פחות.

תודה!אונמר
קוד לcmdפצל"פ

מישהו יכול לכתוב לי פה קוד לcmd (אני הולך לשמור אותו כקובץ bat בתיקייה הרלוונטית במחשב) שיהפוך את כל הסיומות של הקבצים שנמצאים בתיקייה של הסקריפט לאותיות גדולות?


למשל יש לי בתיקיה קבצים בשם

דוגמהא.rtf

דוגמהב.zip

ודוגמהג.doc


אחרי הקוד זה צריך להיראות ככה

דוגמהא.RTF

דוגמהב.ZIP

ודוגמהג.DOC


זה ממש יעזור לי

תודה רבה!

יהיה לך לדעתי יותר קל עם powershellמשה

בכיוון הזה

How to convert the content of the file into uppercase or lowercase?

 

במקרה הזה אתה בעברית אז לא צריך לפצל את הסיומת.

תודה!פצל"פאחרונה

רק לא כ"כ הבנתי מה שכתבת אחרי הקישור

וגם הוא מדבר שם (לפחות מה שאני הבנתי) על להמיר תוכן של קובץ, איך עושים את זה לשמות הקבצים? או שזה פשוט תוכן הקובץ של התיקיה הגדולה?

מדריך React Memongfxp

היי חברים, רציתי לעדכן שהעלתי סרטון חדש לYouTube - מדריך React Memo

Memo היא פונקציה (HOC) שמאפשרת לנו לדלג על רינדורים חוזרים של קומפוננטה כאשר הProps של הקומפוננטה לא משתנים

קישור לסרטון:

 

מה דעתכם?

איזה נושא תרצו את הסרטון הבא?

יש משהו דומה גם בVUE. יצא לי להשתמש בומשה
מה שם הפיצ'ר המקביל ב Vue?zoharelias
V-memoמשהאחרונה
Apiאפרת???

היי, אני צריכה ייעוץ דחוף ממי שמבין בזה.

אשמח לדבר בפרטי

API -+ ממשק המאפשר גישה תכנותית לספריה/תוכנה11111

זה יכול להיות יותר מידי דברים,

רצוי שתשאלי פה את השאלה על מנת שאחרים יוכלו להעזר בשאלה גם אחרים,

אבל בכל מקרה צריך שתגידי על איזה API את מדברת כי זה יכול להיות דברים שונים לחלוטין.

מה בדיוק צריכה ?Adi alon

יכולה להיכנס לכאן לקרוא יש כמה הסברים בנושא :

 

שיווק דיגיטלי - בלוג מקצועי בעולמות השיווק | A-WEB

 

בטח מאוחר מדימשהאחרונה

אבל לשאול שאלות אפשר.

היי חברה לגבי בריאות העיניים למתכנתים שביננוhameiri13

יש משהו שנשקרא "אור כחול" שכל המסכים פולטי והדבר הזה יכול 

להכביד על העיניים כשאנו משתמשים במכך למשך זמן רב ללא הפסקה.

 

ממליץ לקרוא כמה מאמרים בנושא:

שמירה על העיניים כשיושבים מול המחשב

ממליץ גם על יואב טלר. יש ל מדריך חינמי על איך יושבים בתכלס מול המחשב. בחור נחמד ומומחה!

עמוד ראשי – יואב טלר

 

שיהיה רק בריאות חברים !

הוספת גרפיקה בתכנותמתלמד123

שאלת בורות, אבל אני רוצה להבין ולא מצאתי תשובה לבד: נניח אני מפתח משחק בC++, איפה בדיוק נכנסת הגרפיקה? ראיתי שיש פקודות למשתנים לולאות וכו', איך אני מכניס תמונה שתזוז על פי התוכנה? אני מצייר אותה בקובץ נפרד ומכניס? אם כן איך ואיפה?

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

למה C++?אליסף א

אם אתה רוצה, חיפוש ביוטיוב יוביל אותך בקלות לסידרה של בניית מכונות משחק 



זוהי הדרך הארוכה שהיא קצרה

בכל אופן, ישנן שפות אחרות שיותר מתאימות לזה.

אם תכתוב מה אתה מתכנן אולי אוכל לכוון אותך

רק עבור ציור על המסךאליסף א

Write directly to screen with c++ - Stack Overflow

תקרא את התשובת שם 

 

יותר לעומקאליסף א

Module 3. Windows Graphics - Win32 apps

לא קראתי, אבל נראה שיש שם הרבה חומר.

ושוב אני שואל , למה C++?


כי זו השפה שאתה מכיר? 
אולי בפייטון יהיה לך יותר קל להתחיל.?


עוד סרטונים

https://www.youtube.com/watch?v=1KD4Ae0tX0g&list=PL-K0viiuJ2RctP5nlJlqmHGeh66-GOZR_


 

לפי מה ששמעתי זאת אחת השפות הטובות למשחקיםמתלמד123

הבנתי שבגרפיקה היא לא חזקה במיוחד, אבל הגרפיקה לא כל כך חשובה לי, יותר חשוב לי כל המשתנים והמעבר למה שרואים.

זה מה שהבנתי מאנשים שמלמדים פיתוח משחקים, אבל יש סיכוי שזה לא נכון, כמה אתה בטוח שC++ לא טובה?

אני חושב על משהו של אסטרטגיה בלי המון גרפיקה, לא יודע בדיוק מה...

 

השאלה מה אתה מנסה ללמודאליסף א

באיזה שלב אתה.

אתה יודע לתכנת ? 
בכמה שפות ?

כמה נסיון יש לך?

מה המטרה שלך? לכתוב משחק? או ללמוד לתכנת?

האם שמעת על unity? 
שזו פלטפורמה לכתיבת משחקים, כוללת תלת מימד.

אם המטרה היא ללמוד לתכנת
אז C++ היא בהחלט מקום טוב ללמוד בו, רק מעט קשוח. 

אם המטרה היא לכתוב משחק. 
אז יש פלפורטמות קלות יותר. ומתאימות יותר

יתרונה של C++ היא בקרבתה לחומרה, ולכן היא מהירה יותר. ולכן מנוע שתכתוב בה, יעבוד יותר טוב.

בהצלחה. 

אני רוצה ללמוד תכנותמתלמד123

ולא מחפש עכשיו תלת ממד.

תודה על התשובות.

תתחיל עם #c יהיה לך יותר.קלמשה
C++ קשוח.
אפשרות שניה, jsמשה
יש ממש ספריות למשחקים על בסיס canvas.
נכון, #C, או JS או כמובן פייתוןzohareliasאחרונה

למי שרוצה להתחיל ללמוד תכנות, אלו השפות הכי מומלצות, באופן כללי.

 

עם שלושתן אפשר לתכנת משחקים.

אתה צריך להוסיף אפשרות ל "לייק"אליסף א

הייתי עושה לך .

 

תקלה בויזואל סטודיומתלמד123

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

זה נראה ככה:

 

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

אח"כ בפתיחת הקובץ תבדוק שמותקן השפה המסויימת.

פתח פרוייקט חדשאליסף א
זה לא עזר לי, אבל הסתדרתימתלמד123אחרונה

פשוט פתחתי סוג אחר של פלטפורמה לC++, לא יודע מה הייתה הבעיה ומה זאת הפלטפורמה הקודמת, אבל העיקר שיש לי פלטפורמה...

אולי יעניין אותך