GetLineEndings.cpp

Some example for GetLineEndings function - Sender Ghost, 10/09/2019 07:43 AM

Download (842 Bytes)

 
1
#include <Core/Core.h>
2

    
3
using namespace Upp;
4

    
5
String GetLineEndings(const String& data, const String& default_eol = "\r\n")
6
{
7
        int q = data.ReverseFind("\n");
8
        if(q >= 0) {
9
                if(data.Mid(q - 1, 1) == "\r")
10
                        return "\r\n";
11
                else
12
                        return "\n";
13
        }
14
#if 0
15
        else if(data.ReverseFind("\r") >= 0)
16
                return "\r";
17
#endif
18
        return default_eol;
19
}
20

    
21
CONSOLE_APP_MAIN
22
{
23
        const String data_crlf = "text\r\n",
24
                data_lf = "text\n",
25
                data_default = "text",
26
                data_mid_lf = "text\ntext";
27

    
28
#define TEST(x) Cout() << #x << ":\n" << (GetLineEndings(x) == "\r\n" ? "CRLF" : "LF") << '\n';
29
        TEST(data_crlf)
30
        TEST(data_lf)
31
        TEST(data_default)
32
        TEST(data_mid_lf)
33

    
34
        const String line_endings = GetLineEndings(data_default, Null);
35
        Cout() << "Check for empty line endings:\n"
36
                << (IsNull(line_endings) ? "Null" : line_endings == "\r\n" ? "CRLF" : "LF") << '\n';
37
}