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. General Programming
  3. C / C++ / MFC
  4. CEdit carriage returns

CEdit carriage returns

Scheduled Pinned Locked Moved C / C++ / MFC
questionhelpdata-structures
17 Posts 6 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.
  • S Offline
    S Offline
    scontapay
    wrote on last edited by
    #1

    Hi I have a CEdit control that I am trying to have multilined. I am reading a file into a char array buffer: char buffer[1000]; CClass->Read(Buffer, length); My question is that when I have the edit box display the buffer it is not displaying it correctly. Instead of carriage returns I am getting 'square' boxes. I moved the buffer into a CString, but its not picking up the CRLF. How do I go about doing this? Do I have to search and replace? Or, is there a CString method that easily fixes the CRLF problem I am having. I tried using the character array and a type-casted CString variable but I keep getting the same problem. The class I am using is CHttpFile and its read method. TIA for any help or insight you can give into this matter.

    V S J D 4 Replies Last reply
    0
    • S scontapay

      Hi I have a CEdit control that I am trying to have multilined. I am reading a file into a char array buffer: char buffer[1000]; CClass->Read(Buffer, length); My question is that when I have the edit box display the buffer it is not displaying it correctly. Instead of carriage returns I am getting 'square' boxes. I moved the buffer into a CString, but its not picking up the CRLF. How do I go about doing this? Do I have to search and replace? Or, is there a CString method that easily fixes the CRLF problem I am having. I tried using the character array and a type-casted CString variable but I keep getting the same problem. The class I am using is CHttpFile and its read method. TIA for any help or insight you can give into this matter.

      V Offline
      V Offline
      valikac
      wrote on last edited by
      #2

      Post an example of the string in Buffer including the code for the carriage return. Kuphryn

      1 Reply Last reply
      0
      • S scontapay

        Hi I have a CEdit control that I am trying to have multilined. I am reading a file into a char array buffer: char buffer[1000]; CClass->Read(Buffer, length); My question is that when I have the edit box display the buffer it is not displaying it correctly. Instead of carriage returns I am getting 'square' boxes. I moved the buffer into a CString, but its not picking up the CRLF. How do I go about doing this? Do I have to search and replace? Or, is there a CString method that easily fixes the CRLF problem I am having. I tried using the character array and a type-casted CString variable but I keep getting the same problem. The class I am using is CHttpFile and its read method. TIA for any help or insight you can give into this matter.

        S Offline
        S Offline
        Shay Harel
        wrote on last edited by
        #3

        try \r instead of \n in your code

        S 1 Reply Last reply
        0
        • S scontapay

          Hi I have a CEdit control that I am trying to have multilined. I am reading a file into a char array buffer: char buffer[1000]; CClass->Read(Buffer, length); My question is that when I have the edit box display the buffer it is not displaying it correctly. Instead of carriage returns I am getting 'square' boxes. I moved the buffer into a CString, but its not picking up the CRLF. How do I go about doing this? Do I have to search and replace? Or, is there a CString method that easily fixes the CRLF problem I am having. I tried using the character array and a type-casted CString variable but I keep getting the same problem. The class I am using is CHttpFile and its read method. TIA for any help or insight you can give into this matter.

          J Offline
          J Offline
          John R Shaw
          wrote on last edited by
          #4

          I have not used an multiline edit control for a while, but if you are reading in a file from disk and getting 'square' boxes. Then you probubly need to strip out the the CRs and just end the lines with LF. If this is the case, and you want to write the text back to disk, you may need to insert the CRs back into the text before saving. INTP

          S 1 Reply Last reply
          0
          • S Shay Harel

            try \r instead of \n in your code

            S Offline
            S Offline
            scontapay
            wrote on last edited by
            #5

            Sorry should have been more clear but thanks for the fast response. I am not adding the '\r\n' or anything into the code, it is how it is getting read into the buffer from the member function. I'll post an example when I get home from the code I have but basically its: Create CInternetSession and CHttpFile, send request, and then the read member function from CHttpFile. Then I just call SetDlgItemText(IDC_EDIT, strBuff); Where strBuff is a CString that has been created using the character array CString strBuff(Buffer); I know its redundant but I did this to see if CString would handle the carriage return better but its not :(

            S 1 Reply Last reply
            0
            • J John R Shaw

              I have not used an multiline edit control for a while, but if you are reading in a file from disk and getting 'square' boxes. Then you probubly need to strip out the the CRs and just end the lines with LF. If this is the case, and you want to write the text back to disk, you may need to insert the CRs back into the text before saving. INTP

              S Offline
              S Offline
              scontapay
              wrote on last edited by
              #6

              Thanks I thought that is what I had todo, but I figured their would have been a helper function or a member of CString todo that since it sounds like something a lot of people would do. Oh well time to write a small search and replace function :)

              J S 2 Replies Last reply
              0
              • S scontapay

                Sorry should have been more clear but thanks for the fast response. I am not adding the '\r\n' or anything into the code, it is how it is getting read into the buffer from the member function. I'll post an example when I get home from the code I have but basically its: Create CInternetSession and CHttpFile, send request, and then the read member function from CHttpFile. Then I just call SetDlgItemText(IDC_EDIT, strBuff); Where strBuff is a CString that has been created using the character array CString strBuff(Buffer); I know its redundant but I did this to see if CString would handle the carriage return better but its not :(

                S Offline
                S Offline
                Shay Harel
                wrote on last edited by
                #7

                Well then, Once again, on the same string you send to the edit box, try : strBuff.Remove ('\r'); See if that will work.

                S 1 Reply Last reply
                0
                • S Shay Harel

                  Well then, Once again, on the same string you send to the edit box, try : strBuff.Remove ('\r'); See if that will work.

                  S Offline
                  S Offline
                  scontapay
                  wrote on last edited by
                  #8

                  Ah sorry misread your post. I thought you meant not for me to write it into the buffer, which I wasn't. I need some coffee :( I will try that thank you, and thank you for your patience!

                  1 Reply Last reply
                  0
                  • S scontapay

                    Hi I have a CEdit control that I am trying to have multilined. I am reading a file into a char array buffer: char buffer[1000]; CClass->Read(Buffer, length); My question is that when I have the edit box display the buffer it is not displaying it correctly. Instead of carriage returns I am getting 'square' boxes. I moved the buffer into a CString, but its not picking up the CRLF. How do I go about doing this? Do I have to search and replace? Or, is there a CString method that easily fixes the CRLF problem I am having. I tried using the character array and a type-casted CString variable but I keep getting the same problem. The class I am using is CHttpFile and its read method. TIA for any help or insight you can give into this matter.

                    D Offline
                    D Offline
                    David Crow
                    wrote on last edited by
                    #9

                    Make sure the control has the ES_MULTILINE style.

                    S 1 Reply Last reply
                    0
                    • D David Crow

                      Make sure the control has the ES_MULTILINE style.

                      S Offline
                      S Offline
                      scontapay
                      wrote on last edited by
                      #10

                      Its set to true. Btw I am using Visual Studio.Net the first release, and I can't believe that it does not have a single service pack or update for it.

                      D 1 Reply Last reply
                      0
                      • S scontapay

                        Its set to true. Btw I am using Visual Studio.Net the first release, and I can't believe that it does not have a single service pack or update for it.

                        D Offline
                        D Offline
                        David Crow
                        wrote on last edited by
                        #11

                        Then the following code snippet should work: m_edit.SetWindowText("This is on line 1\r\nThis is on line 2\r\nThis is on line 3");

                        S 1 Reply Last reply
                        0
                        • S scontapay

                          Thanks I thought that is what I had todo, but I figured their would have been a helper function or a member of CString todo that since it sounds like something a lot of people would do. Oh well time to write a small search and replace function :)

                          J Offline
                          J Offline
                          John R Shaw
                          wrote on last edited by
                          #12

                          There normaly is but you did not say what class you is providing the read method. CArchive provides ReadString() (reads one line at a time), although I think it removeS the CRLF and replaces it with a '\0'. If using stdio (C) then you would use fgets() replaces the CRLF with '\n''\0'. So you may, or may not, already have a method that will help you. INTP

                          1 Reply Last reply
                          0
                          • D David Crow

                            Then the following code snippet should work: m_edit.SetWindowText("This is on line 1\r\nThis is on line 2\r\nThis is on line 3");

                            S Offline
                            S Offline
                            scontapay
                            wrote on last edited by
                            #13

                            DavidCrow yes that would work thank you. But the enformation I am getting is placed inside a buffer which is a CString, and it is that CString I am putting into the edit box, for example: SetDlgItemText(IDC_EDIT, strBuffer); Where strBuffer is a CString, and the information from that is read from a file. Once placed inside the CEdit box it is displaying those weird 'squares' instead of doing a CRLF.

                            D 1 Reply Last reply
                            0
                            • S scontapay

                              DavidCrow yes that would work thank you. But the enformation I am getting is placed inside a buffer which is a CString, and it is that CString I am putting into the edit box, for example: SetDlgItemText(IDC_EDIT, strBuffer); Where strBuffer is a CString, and the information from that is read from a file. Once placed inside the CEdit box it is displaying those weird 'squares' instead of doing a CRLF.

                              D Offline
                              D Offline
                              David Crow
                              wrote on last edited by
                              #14

                              It matters not that SetWindowText()'s parameter is a CString, or a string literal. The characters \r\n must be used. If you are only receiving one of them, a quick search and replace is all that's needed. For example: CString str = "This is on line 1\rThis is on line 2\rThis is on line 3"; str.Replace("\r", "\r\n"); m_edit.SetWindowText(str);

                              S 1 Reply Last reply
                              0
                              • S scontapay

                                Thanks I thought that is what I had todo, but I figured their would have been a helper function or a member of CString todo that since it sounds like something a lot of people would do. Oh well time to write a small search and replace function :)

                                S Offline
                                S Offline
                                Shog9 0
                                wrote on last edited by
                                #15

                                scontapay wrote: I figured their would have been a helper function or a member of CString strTextWithCarriageReturns::Remove(_T('\r'));

                                Shog9

                                Give me a Leonard Cohen afterworld So I can sigh enternally...

                                S 1 Reply Last reply
                                0
                                • S Shog9 0

                                  scontapay wrote: I figured their would have been a helper function or a member of CString strTextWithCarriageReturns::Remove(_T('\r'));

                                  Shog9

                                  Give me a Leonard Cohen afterworld So I can sigh enternally...

                                  S Offline
                                  S Offline
                                  scontapay
                                  wrote on last edited by
                                  #16

                                  Thanks I see where my problem is. It is the fact that I kept misreading everyones advice :( I thought everyone was trying to tell me to insert it into the buffer I was creating, and didn't think anyone knew I was reading it in. My fault... See what 6-8 months away does to a C++ programmer when programminging VB! :|

                                  1 Reply Last reply
                                  0
                                  • D David Crow

                                    It matters not that SetWindowText()'s parameter is a CString, or a string literal. The characters \r\n must be used. If you are only receiving one of them, a quick search and replace is all that's needed. For example: CString str = "This is on line 1\rThis is on line 2\rThis is on line 3"; str.Replace("\r", "\r\n"); m_edit.SetWindowText(str);

                                    S Offline
                                    S Offline
                                    scontapay
                                    wrote on last edited by
                                    #17

                                    I wanted to thank you for your help. Here is a copy of a post made above so you know what happened: Thanks I see where my problem is. It is the fact that I kept misreading everyones advice I thought everyone was trying to tell me to insert it into the buffer I was creating, and didn't think anyone knew I was reading it in. My fault... See what 6-8 months away does to a C++ programmer when programminging VB! :|

                                    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