lazhen
2025-01-09 8afe90b633046db39042aada36b88193062f8cff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Quintiq file version 2.0
#parent: #root
StaticMethod FormatCSV (
  String string
) as String
{
  Description:
  [*
    Format the result to CSV format
    Maintain by R&D
  *]
  TextBody:
  [*
    // jasperb Mar-7-2012 (created)
    
    result := string;
    
    newlinestring := BenchmarkUtilities::NewLineString();
    delimiter := BenchmarkUtilities::Delimiter();
    
    if( string.FindString( delimiter, 0 ) > 0 )
    {
      error( 'newlinestring', delimiter, 'already used' );
    }
    
    if( string.FindString( newlinestring, 0 ) > 0 )
    {
      error( 'newlinestring', newlinestring, 'already used' );
    }
    
    quoteclosed := true;
    
    for( position := 0; position < result.Length() ; position++ )
    {
      substring := result.SubString( position, 1 );
    
      if( substring = "'" )
      {
        quoteclosed := not quoteclosed;
      }
      else if( quoteclosed and substring = "," )
      {
        result := result.Replace( position, 1, delimiter );
      }
    }
    
    return result.ReplaceAll( String::NewLine(), newlinestring );
  *]
}