C#
다른방식의 문자열 배열 class String_array
안녕1999
2020. 10. 11. 23:53
public class String_array
{
public int m_cnt;
public string[] m_strarray;
public int m_i;
public String_array(int max=32)
{
New(32);
}
~String_array()
{
Free();
}
public void New(int max)
{
Free();
if (max <= 0)
{
max = 1024;
}
else
{ }
m_cnt = max;
m_i = 0;
m_strarray = new string[max];
}
public void Add(string s)
{
if (Find(s) == -1)
{
if (m_i < m_cnt)
{
m_strarray[m_i] = s;
m_i++;
}
else
{ }
}
else
{
//이미존재
}
}
public int Find(string s)
{
int i, find = -1;
for (i = 0; i < m_i; i++)
{
if (m_strarray[i] == s)
{
find = i;
break;
}
else
{ }
}
return find;
}
public string Get(int i)
{
return m_strarray[i];
}
public int Del(string s)//ret=bok
{
int bok = 0, i = Find(s);
if (i != -1)
{
//find
if (i != (m_i - 1))
{
//swap
m_strarray[i] = m_strarray[m_i - 1];
m_strarray[m_i - 1] = "";
}
else
{
//마지막위치
m_strarray[i] = "";
}
m_i--;
bok = 1;
}
else
{
//not found
}
return bok;
}
public void Free()
{
int i;
for (i = 0; i < m_i; i++)
{
m_strarray[i] = "";
}
m_i = 0;
}
/*public void Ini_Load(string name)
{
int i,n;
IniFile ini = new IniFile();
ini.SetSection(name);
n = ini.Get_int("n", 0);
for (i = 0; i < n; i++)
{
Add(ini.Gets(Convert.ToString(i), ""));
}
}
public void Ini_Save(string name)
{
int i;
IniFile ini = new IniFile();
ini.SetSection(name);
for (i = 0; i < m_i; i++)
{
ini.Puts(Convert.ToString(i), m_strarray[i]);
}
ini.Put_int("n", m_i);
}*/
}