char *GetFirstLine (char *pszLine) { char szLineBuffer [iMaxLineLength]; int iEndSel = HIWORD (Edit_GetSel (hEditWnd)); int iCopyCount; int iLineNr; register int i; /* lese akt. Zeile */ for (i = 0; i < sizeof (szLineBuffer); i++) szLineBuffer [i] = '\0'; iLineNr = Edit_LineFromChar (hEditWnd, iEndSel); Edit_GetLine (hEditWnd, iLineNr, szLineBuffer, sizeof (szLineBuffer) -1); /* berechne Indizes für Kopieren des sel. Strings */ iEndSel -= Edit_LineIndex (hEditWnd, iLineNr); /* berechne Anz. zu kopierender Zeichen */ iCopyCount = strlen (szLineBuffer) - iEndSel; /* überflüssige Zeichen überschreiben */ memmove (szLineBuffer, szLineBuffer+iEndSel, iCopyCount); szLineBuffer [iCopyCount] = '\0'; // setze Endekennzeichen /* in Zielstring kopieren */ strcpy (pszLine, szLineBuffer); return (pszLine); }
// delete a line void editDeleteLine(HWND i_hwnd, size_t i_n) { int len = Edit_LineLength(i_hwnd, i_n); if (len < 0) return; len += 2; int index = Edit_LineIndex(i_hwnd, i_n); Edit_SetSel(i_hwnd, index, index + len); Edit_ReplaceSel(i_hwnd, _T("")); }
/* Selektierten Text lesen */ char *GetSelectedText (char *pszResultText, int iMaxCopy) { char szLineBuffer [iMaxLineLength]; DWORD dwSel = Edit_GetSel (hEditWnd); int iAnfSel = LOWORD (dwSel); int iEndSel = HIWORD (dwSel); int iCopyCount; int iLineNr; register int i; iCopyCount = iEndSel - iAnfSel; if (iCopyCount) { /* akt. Zeile lesen */ for (i = 0; i < sizeof (szLineBuffer); i++) szLineBuffer [i] = '\0'; iLineNr = Edit_LineFromChar (hEditWnd, -1); Edit_GetLine (hEditWnd, iLineNr, szLineBuffer, sizeof (szLineBuffer) -1); /* berechne Indizes für Kopieren des sel. Strings */ iAnfSel -= Edit_LineIndex (hEditWnd, iLineNr); /* korrigiere ggf. Anz. zu kopierender Zeichen */ if (Edit_LineFromChar (hEditWnd, iEndSel) != iLineNr) { iEndSel = strlen (szLineBuffer); iCopyCount = iEndSel - iAnfSel; } /* begrenze ggf. Anz. zu kopierender Zeichen */ if (iCopyCount > iMaxCopy) iCopyCount = iMaxCopy; /* überflüssige Zeichen überschreiben */ memmove (szLineBuffer, szLineBuffer+iAnfSel, iCopyCount); szLineBuffer [iCopyCount] = '\0'; // setze Endekennzeichen /* in Zielstring kopieren */ strcpy (pszResultText, szLineBuffer); } return (pszResultText); }