דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. אתגר קטן למעוניינים

אתגר קטן למעוניינים

מתוזמן נעוץ נעול הועבר ארכיון code613m
3 פוסטים 2 כותבים 249 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארכיטקט
    כתב ב נערך לאחרונה על ידי
    #1

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

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

    האתגר הוא לעשות פונקציה של fullname בצורה קריאה ואנושית לצורכי מכתבים וכדומה. כאשר יש לנו 4 סיטואציות, התיק הנורמלי, שם משפחה ושם פרטי של 2 בני הזוג יוצג כך: "כהן אהרן ואלישבע" אם זה תיק של רווק/גרוש יוצג כהן אהרן בלבד, תיק של רווקה "כהן אלישבע" תיק של זוג עם התייחסות לטרום חתונה "כהן אהרן ובוזגלו אלישבע". אז יש כאן בעצם הוספות של ווים ורווחים (אצלי אין דבר כזה להוסיף רווחים כפולים!) לפי הענין.
    זה הקוד הכי קצר שהצלחתי לעשות ב vb6, אם יש למישהו דרך קצרה יותר בדוט נט או sql אשמח לשמוע.

    Function GetFullName(ByVal firsname, ByVal LastName, ByVal firsnamewoman, ByVal LastNameWoman)
    If Len(firsname) > 0 Then firsname = " " & firsname
    If (IsNull(LastNameWoman) Or Len(LastNameWoman) = 0) And Len(firsnamewoman) > 0 And Len(firsname) > 0 Then firsnamewoman = "ו" & firsnamewoman
    If Len(firsnamewoman) > 0 Then firsnamewoman = " " & firsnamewoman
    If Len(LastNameWoman) > 0 Then LastNameWoman = " ו" & LastNameWoman
    
    GetFullName = LastName & firsname & LastNameWoman & firsnamewoman
    End Function
    

    פורסם במקור בפורום CODE613 ב12/03/2014 12:34 (+02:00)

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

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

      זה בC#, זה מטפל גם בהעדר שם מסויים.

      string SafeJoin(string a, string other, String separator)
      {
          if(string.IsNullOrWhiteSpace(a) || string.IsNullOrWhiteSpace(other))
              separator =  null;
          return string.Concat(a, separator, other);
      }
      
      
      string CombinNames(string firstName, string lastName, string firstNameWomen, string lastNameWomen)
      {
          string men = SafeJoin(firstName, lastName, " ");
          string women = lastNameWomen == lastName ? firstNameWomen : SafeJoin(firstNameWomen, lastNameWomen, " ");
      
          return SafeJoin(men, women, " ו");
      }
      

      פורסם במקור בפורום CODE613 ב12/03/2014 15:28 (+02:00)

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

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

        CREATE FUNCTION [dbo].[GetFullName]
        (
        	-- Add the parameters for the function here
        	@FName nvarchar(100),@LName nvarchar (100),@FNameW nvarchar (100),@LNameW nvarchar (100)
        )
        RETURNS nvarchar (400)
        AS
        BEGIN
        set @FName =  ISNULL(@FName ,'') 
        set @LName =  ISNULL(@LName ,'') 
        set @FNameW =  ISNULL(@FNameW ,'') 
        set @LNameW =  ISNULL(@LNameW ,'') 
        
        if LEN (@FName) > 0 set @FName = ' ' + @FName 
        if len(@LNameW) = 0 and LEN(@FNameW)>0  and len(@FName)>0 set @FNameW = 'ו' + @FNameW 
        if len(@FNameW)> 0 set @FNameW = ' ' + @FNameW 
        if LEN(@LNameW)>0 set @LNameW = ' ו' + @LNameW 
        
        	RETURN @LName + @FName + @LNameW + @FNameW;
        
        END
        
        GO
        

        פורסם במקור בפורום CODE613 ב24/03/2014 14:05 (+02:00)

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

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

        בא תתחבר לדף היומי!
        • התחברות

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

        • התחברו או הירשמו כדי לחפש.
        • פוסט ראשון
          פוסט אחרון
        0
        • דף הבית
        • קטגוריות
        • פוסטים אחרונים
        • משתמשים
        • חיפוש
        • חוקי הפורום