Hej
Jestem noobem w C#, a chciałem sobie usprawnić pracę z dokumentami. Zrobiłem sobie Add-in z przyciskiem, który pomaga mi formatować dany dokument. Checkboxami zaznaczam, co ma mi zrobić z dokumentem i oszczędzam dzięki temu kupę czasu.
Jedno rozwiązanie mi nie działa, mianowicie twarde spacje. Generalnie program ma wstawiać twardą spację w przypadku słów krótszych niż 3 znaki i znajdujących się w tabeli slowaKrotkie. ChatGPT i Copilot poprawiali mi kod, aż wyszedł taki potworek. Działać nie działa
public static void ZamienTwardeSpacjeNaKoncuLinijek(Word.Document document)
{
string tekstDokumentu = document.Content.Text;
string[] slowaKrotkie = { "a", "i", "o", "u", "w", "z", "na", "do", "po", "za", "przy", "nad", "bez", "od", "we", "ze" };
string[] linie = tekstDokumentu.Split('\n');
foreach (string linia in linie)
{
string[] slowa = linia.Split(' ', '\t');
if (slowa.Length > 0)
{
string ostatnieSlowo = slowa[slowa.Length - 1].Trim();
if (ostatnieSlowo.Length <= 2 && Array.Exists(slowaKrotkie, slowo => slowo.Equals(ostatnieSlowo, StringComparison.OrdinalIgnoreCase)))
{
Word.Range range = document.Range(document.Content.End - linia.Length + ostatnieSlowo.Length + 1, document.Content.End - 1);
range.Text = "\u00A0";
}
}
}
}
private void WstawTwardeSpacje(object sender, EventArgs e)
{
Word.Document currentDocument = Globals.ThisAddIn.Application.ActiveDocument;
ZamienTwardeSpacjeNaKoncuLinijek(currentDocument);
}