Mam richEdita,w którym są pewnie cyfry 0 i 1 i każda linijka ma taką samą ilość znaków 0,1. Np.

00000\r\n
01011\r\n
10010\r\n
11100

Chciałbym mieć kod taki co jeśli wykryje, że jakiś wiersz==jakiemuś innemu wierszowi to by usunąć automatycznie wiersz ten co jest najniżej. Mój niedziałający kod:

LPSTR linijka,linijka2;
int *tab;
tab=new int[liczba_wierszy];
for(i=0;i<liczba_wierszy;i++)
   tab[i]=0;
linijka=(LPSTR)GlobalAlloc(GPTR,liczba_kolumn); 
linijka2=(LPSTR)GlobalAlloc(GPTR,liczba_kolumn); 
for(i=0;i<liczba_wierszy-1;i++)  //biorę wiersz
{
                      linijka[0]=liczba_kolumn;  //wpisuję jak dokumentacja msdn mówi ile pobrać bajtów
                      SendMessage(hWejscie,EM_GETLINE,i+1,(LPARAM)linijka); //pobieram wiersz i
                      for(j=i+1;j<liczba_wierszy;j++)  //biorę wiersze poniżej
                      {
                          linijka2[0]=liczba_kolumn;  //wpisuję ile pobrać bajtów
                          SendMessage(hWejscie,EM_GETLINE,j+1,(LPARAM)linijka2);  //pobieram każdy z nich
                          if(linijka==linijka2)  //jeśli wiersze równe to zapamiętaj wiersz j, aby potem go usunąć
                             tab[j]=1;               
                      }              
} 
   //usuwanie wierszy
i=0;
for(j=0;j<liczba_wierszy;j++)
      if(tab[i]==1)
      {
              nr_znaku=SendMessage(hWejscie,EM_LINEINDEX,j,0);  //pobierz nr 1-szego znaku wiersza j
              SendMessage(hWejscie,EM_SETSEL,nr_znaku,nr_znaku+liczba_kolumn); //zaznacz wiersz
              SendMessage(hWejscie,EM_REPLACESEL,0,(LPARAM)""); //usuń go
              wiersze--;  //zmniejsz aktualną ilość wierszy
              j--; //wiersz j stał się po usunięciu wierszem j+1 a go też trzeba sprawdzić
              i++;
      }     
GlobalFree(linijka);
GlobalFree(linijka2);
delete []tab;