You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.2 KiB
49 lines
1.2 KiB
10 years ago
|
using UnityEngine;
|
||
|
using System.Collections;
|
||
|
using System.Text.RegularExpressions;
|
||
|
using System.Linq;
|
||
|
using System;
|
||
|
|
||
|
namespace Fungus
|
||
|
{
|
||
|
|
||
|
// Some CSV utilities cobbled together from stack overflow answers
|
||
|
// CSV escape & unescape from http://stackoverflow.com/questions/769621/dealing-with-commas-in-a-csv-file
|
||
|
// http://answers.unity3d.com/questions/144200/are-there-any-csv-reader-for-unity3d-without-needi.html
|
||
|
public static class CSVSupport
|
||
|
{
|
||
|
public static string Escape( string s )
|
||
|
{
|
||
|
s = s.Replace("\n", "\\n");
|
||
|
|
||
|
if ( s.Contains( QUOTE ) )
|
||
|
s = s.Replace( QUOTE, ESCAPED_QUOTE );
|
||
|
|
||
10 years ago
|
if ( s.IndexOfAny( CHARACTERS_THAT_MUST_BE_QUOTED ) > -1 )
|
||
|
s = QUOTE + s + QUOTE;
|
||
10 years ago
|
|
||
|
return s;
|
||
|
}
|
||
|
|
||
|
public static string Unescape( string s )
|
||
|
{
|
||
|
s = s.Replace("\\n", "\n");
|
||
|
|
||
|
if ( s.StartsWith( QUOTE ) && s.EndsWith( QUOTE ) )
|
||
|
{
|
||
|
s = s.Substring( 1, s.Length - 2 );
|
||
|
|
||
|
if ( s.Contains( ESCAPED_QUOTE ) )
|
||
|
s = s.Replace( ESCAPED_QUOTE, QUOTE );
|
||
|
}
|
||
|
|
||
|
return s;
|
||
|
}
|
||
10 years ago
|
|
||
10 years ago
|
private const string QUOTE = "\"";
|
||
|
private const string ESCAPED_QUOTE = "\"\"";
|
||
10 years ago
|
private static char[] CHARACTERS_THAT_MUST_BE_QUOTED = { ',', '"', '\n' };
|
||
10 years ago
|
}
|
||
|
|
||
|
}
|