Массив строк из Clipboard ?
Среда - VS2008, C++ .
Есть массив строк
Код:
array<String^>^BuffArray = gcnew array<String^>(0);
или лист
Код:
List<String^> BuffList = gcnew List<String^>();
Подскажите, как заполнить массив BuffArray или лист BuffList строками из объекта
Код:
iData->GetData( DataFormats::Text )
Решено...
Примерно пока так -
Код:
List<String^> BuffList = gcnew List<String^>();
System::Windows::Forms::IDataObject^ iData = Clipboard::GetDataObject();
if ( iData->GetDataPresent( DataFormats::Text ) )
{
BuffStr = (String^)(iData->GetData( DataFormats::Text ));
String^ SubStr;
while (BuffStr!="")
{
if(BuffStr->IndexOf("\n")>0)
{
SubStr = BuffStr->Substring(0, BuffStr->IndexOf("\n"));
BuffStr = BuffStr->Substring(BuffStr->IndexOf("\n")+1,
BuffStr->Length - BuffStr->IndexOf("\n")-1);
}
else
{
SubStr = BuffStr->Substring(0, BuffStr->Length);
BuffList.Add(SubStr);
BuffStr = "";
SubStr = "";
}
BuffList.Add(SubStr);
}
}
System::Windows::Forms::IDataObject^ iData = Clipboard::GetDataObject();
if ( iData->GetDataPresent( DataFormats::Text ) )
{
BuffStr = (String^)(iData->GetData( DataFormats::Text ));
String^ SubStr;
while (BuffStr!="")
{
if(BuffStr->IndexOf("\n")>0)
{
SubStr = BuffStr->Substring(0, BuffStr->IndexOf("\n"));
BuffStr = BuffStr->Substring(BuffStr->IndexOf("\n")+1,
BuffStr->Length - BuffStr->IndexOf("\n")-1);
}
else
{
SubStr = BuffStr->Substring(0, BuffStr->Length);
BuffList.Add(SubStr);
BuffStr = "";
SubStr = "";
}
BuffList.Add(SubStr);
}
}
Это работает, но медленно и решение корявое.
Позднее сделал так - быстро помещает в управляемый массив строк содержимое Clipboard
Код:
array<String^>^BuffArray = gcnew array<String^>(0);
System::Windows::Forms::IDataObject^ iData = Clipboard::GetDataObject();
if ( iData->GetDataPresent( DataFormats::Text ) )
{
String^ BuffStr = "";
BuffStr = (String^)(iData->GetData( DataFormats::Text));
array<Char>^sep = gcnew array<Char>{'\n','\r'};
BuffArray = BuffStr->Split( sep, StringSplitOptions::RemoveEmptyEntries );
}
System::Windows::Forms::IDataObject^ iData = Clipboard::GetDataObject();
if ( iData->GetDataPresent( DataFormats::Text ) )
{
String^ BuffStr = "";
BuffStr = (String^)(iData->GetData( DataFormats::Text));
array<Char>^sep = gcnew array<Char>{'\n','\r'};
BuffArray = BuffStr->Split( sep, StringSplitOptions::RemoveEmptyEntries );
}
Спасибо всем ответившим и помогавшим в поиске!!!!!