다른방식의 문자열 배열 class String_array
C# / 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);
}*/
}
'C#' 카테고리의 다른 글
Microsoft.Office.Interop.Excel 저장한 파일 불러올때 깨진파일 (0) | 2020.10.17 |
---|---|
LISTVIEW 관련 함수들 (0) | 2020.10.11 |
'Marshal' 이름이 현재 컨텍스트에 없습니다. (0) | 2020.10.11 |
엑셀 - 개체참조가 개체의 인스턴스로 설정되지 않았습니다. (0) | 2020.10.11 |
TextBox 자동 스크롤 다운(Scroll down) (0) | 2020.10.10 |