Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Web Development
  3. ASP.NET
  4. string manipulation in c#

string manipulation in c#

Scheduled Pinned Locked Moved ASP.NET
csharphelptutorial
17 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • U uglyeyes

    I am not very good in DB could you pleae help? and do I really need a stored proc for this. can it be not done in a single line?

    A Offline
    A Offline
    Abhijit Jana
    wrote on last edited by
    #8

    uglyeyes wrote:

    could you pleae help?

    PL SQL Function :

    CREATE FUNCTION SplitString
    (
    -- Add the parameters for the function here
    @myString varchar(500),
    @deliminator varchar(10)
    )
    RETURNS
    @ReturnTable TABLE
    (
    -- Add the column definitions for the TABLE variable here
    [id] [int] IDENTITY(1,1) NOT NULL,
    [part] [varchar](50) NULL
    )
    AS
    BEGIN
    Declare @iSpaces int
    Declare @part varchar(50)

        --initialize spaces
        Select @iSpaces = charindex(@deliminator,@myString,0)
        While @iSpaces > 0
    
        Begin
            Select @part = substring(@myString,0,charindex(@deliminator,@myString,0))
    
            Insert Into @ReturnTable(part)
            Select @part
    
    Select @myString = substring(@mystring,charindex(@deliminator,@myString,0)+ len(@deliminator),len(@myString) - charindex(' ',@myString,0))
    
    
            Select @iSpaces = charindex(@deliminator,@myString,0)
        end
    
        If len(@myString) > 0
            Insert Into @ReturnTable
            Select @myString
    
    RETURN 
    

    END
    GO

    And Try with Example

    Select * From SplitString('Hello John Smith',' ')

    Original Source[^] :)

    Abhijit Jana | Codeproject MVP Web Site : abhijitjana.net Don't forget to click "Good Answer" on the post(s) that helped you.

    1 Reply Last reply
    0
    • T Tripathi Swati

      split using space n make one for loop which will go upto lenght where take one variable which is going up to 7 and again reset to 1. dis manner u can get. and yes store this result in list ...

      Reasons are not Important but Results are Important. Swati Tripathi

      U Offline
      U Offline
      uglyeyes
      wrote on last edited by
      #9

      hello either in sql or c# a code hint will be really helpful. I prefer in sql thou.

      A U 2 Replies Last reply
      0
      • U uglyeyes

        hello either in sql or c# a code hint will be really helpful. I prefer in sql thou.

        A Offline
        A Offline
        Abhijit Jana
        wrote on last edited by
        #10

        uglyeyes wrote:

        hello either in sql or c# a code hint will be really helpful. I prefer in sql thou.

        Try with sample that I have provided to you !

        Abhijit Jana | Codeproject MVP Web Site : abhijitjana.net Don't forget to click "Good Answer" on the post(s) that helped you.

        1 Reply Last reply
        0
        • U uglyeyes

          hello either in sql or c# a code hint will be really helpful. I prefer in sql thou.

          U Offline
          U Offline
          uglyeyes
          wrote on last edited by
          #11

          this one worked. DECLARE @mystring VARCHAR(200) DECLARE @count INT DECLARE @max INT DECLARE @space INT SET @mystring = 'A quick sly fox jumped over the lazy brown dog' SET @count = 0 SET @max = 7 SET @space = 1 SET NOCOUNT ON WHILE @count < @max BEGIN SELECT @space = CHARINDEX (' ', @mystring , @space + 1) -- SELECT 'position: ', @space SET @count = @count + 1 END SELECT LEFT(@mystring,@space) SET NOCOUNT OFF

          A 1 Reply Last reply
          0
          • U uglyeyes

            this one worked. DECLARE @mystring VARCHAR(200) DECLARE @count INT DECLARE @max INT DECLARE @space INT SET @mystring = 'A quick sly fox jumped over the lazy brown dog' SET @count = 0 SET @max = 7 SET @space = 1 SET NOCOUNT ON WHILE @count < @max BEGIN SELECT @space = CHARINDEX (' ', @mystring , @space + 1) -- SELECT 'position: ', @space SET @count = @count + 1 END SELECT LEFT(@mystring,@space) SET NOCOUNT OFF

            A Offline
            A Offline
            Abhijit Jana
            wrote on last edited by
            #12

            :thumbsup:

            Abhijit Jana | Codeproject MVP Web Site : abhijitjana.net Don't forget to click "Good Answer" on the post(s) that helped you.

            U 1 Reply Last reply
            0
            • A Abhijit Jana

              uglyeyes wrote:

              I have like 1000 rows returning from database is string.split and looping to get the 7 words appropriate way to go?

              Then why you are not doing this thing in DB End ? Make the stored procedure which will return those first 7 words from DB rather than whole sentence.

              Abhijit Jana | Codeproject MVP Web Site : abhijitjana.net Don't forget to click "Good Answer" on the post(s) that helped you.

              A Offline
              A Offline
              Abhijit Jana
              wrote on last edited by
              #13

              Why somebody voted it as 1 ? Any Proper reason ?

              Abhijit Jana | Codeproject MVP Web Site : abhijitjana.net Don't forget to click "Good Answer" on the post(s) that helped you.

              S 1 Reply Last reply
              0
              • A Abhijit Jana

                Why somebody voted it as 1 ? Any Proper reason ?

                Abhijit Jana | Codeproject MVP Web Site : abhijitjana.net Don't forget to click "Good Answer" on the post(s) that helped you.

                S Offline
                S Offline
                sashidhar
                wrote on last edited by
                #14

                May be They Dont like U..! ;P Check now..!

                LatestArticle :Log4Net Why Do Some People Forget To Mark as Answer .If It Helps.

                A 1 Reply Last reply
                0
                • S sashidhar

                  May be They Dont like U..! ;P Check now..!

                  LatestArticle :Log4Net Why Do Some People Forget To Mark as Answer .If It Helps.

                  A Offline
                  A Offline
                  Abhijit Jana
                  wrote on last edited by
                  #15

                  :laugh: .

                  Abhijit Jana | Codeproject MVP Web Site : abhijitjana.net Don't forget to click "Good Answer" on the post(s) that helped you.

                  1 Reply Last reply
                  0
                  • A Abhijit Jana

                    :thumbsup:

                    Abhijit Jana | Codeproject MVP Web Site : abhijitjana.net Don't forget to click "Good Answer" on the post(s) that helped you.

                    U Offline
                    U Offline
                    uglyeyes
                    wrote on last edited by
                    #16

                    Ok, I think via database it works but I need to use this logic via c# code. could someone please show me how to write a function that will give me same output. thanks in advance below code runs two times and prints it twice. how can i make it more efficient so it loads faster and dispalys only once?

                    public string getAdBrief(string text)
                    {
                    string s = "";
                    string[] words = text.Split(' ');
                    for (int i = 0; i < 7; i++)
                    {
                    s +=words[i] + ' ';
                    }
                    return s;
                    }

                    modified on Wednesday, November 18, 2009 9:30 PM

                    U 1 Reply Last reply
                    0
                    • U uglyeyes

                      Ok, I think via database it works but I need to use this logic via c# code. could someone please show me how to write a function that will give me same output. thanks in advance below code runs two times and prints it twice. how can i make it more efficient so it loads faster and dispalys only once?

                      public string getAdBrief(string text)
                      {
                      string s = "";
                      string[] words = text.Split(' ');
                      for (int i = 0; i < 7; i++)
                      {
                      s +=words[i] + ' ';
                      }
                      return s;
                      }

                      modified on Wednesday, November 18, 2009 9:30 PM

                      U Offline
                      U Offline
                      uglyeyes
                      wrote on last edited by
                      #17

                      never mind this helped

                      public static string GetFirstFewWords(string input, int numberWords)
                      {
                      if (input.Split(new char[] { ' ' },
                      StringSplitOptions.RemoveEmptyEntries).Length > numberWords)
                      {
                      // Number of words we still want to display.
                      int words = numberWords;
                      // Loop through entire summary.
                      for (int i = 0; i < input.Length; i++)
                      {
                      // Increment words on a space.
                      if (input[i] == ' ')
                      {
                      words--;
                      }
                      // If we have no more words to display, return the substring.
                      if (words == 0)
                      {
                      return input.Substring(0, i);
                      }
                      }
                      return string.Empty;
                      }
                      else
                      {
                      return input;
                      }
                      }

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups