Ich kopiere einige Daten vom SAP-GUI-Bildschirm in die Zwischenablage. Es sieht wie folgt aus, wenn ich es in Editor oder einen Texteditor einfügen.So erhalten Sie Daten aus der Texttabellenfolge in C# zuverlässiger und schneller
Ich möchte nur drei Felder [Erstellt durch, PO Datum, Dokument] aus der Zwischenablage Texttabelle String.
Zur Zeit kann ich Daten wie folgt lesen.
public class DocData
{
public string CreatedBy { get; set; }
public string PODate { get; set; }
public string Document { get; set; }
}
private void GetDocumentData()
{
var clipboardData = Clipboard.GetText(TextDataFormat.Text);
List<DocData> docDataList = new List<DocData>();
for (int separatorCounter = 20; separatorCounter < clipboardData.Count(); separatorCounter = separatorCounter + 13)
{
DocData docData = new DocData();
int index = GetNthIndex(clipboardData, '|', separatorCounter);
if (index != -1)
{
var dataString = clipboardData.Substring(index + 1);
var sepIndex = dataString.IndexOf('|');
if (sepIndex != -1)
{
docData.CreatedBy = dataString.Substring(0, sepIndex).Trim();
}
}
index = GetNthIndex(clipboardData, '|', separatorCounter + 2);
if (index != -1)
{
var dataString = clipboardData.Substring(index + 1);
var sepIndex = dataString.IndexOf('|');
if (sepIndex != -1)
{
docData.PODate = dataString.Substring(0, sepIndex).Trim();
}
}
index = GetNthIndex(clipboardData, '|', separatorCounter + 4);
if (index != -1)
{
var dataString = clipboardData.Substring(index + 1);
var sepIndex = dataString.IndexOf('|');
if (sepIndex != -1)
{
docData.Document = dataString.Substring(0, sepIndex).Trim();
}
}
if (!string.IsNullOrEmpty(docData.Document))
{
docDataList.Add(docData);
}
}
}
Kann jemand einen besseren Weg vorschlagen, dies zu tun, ohne die Saite zu sehr zu manipulieren.
Wie wäre es 'Split' –
Und was Subroutinen statt Kopie mit/einfügen? – Sefe
Es sieht aus wie Daten im festen Format, Sie könnten nur die Werte von bestimmten Stellen in der Zeichenfolge – BugFinder