Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.44 KB | None | 0 0
  1. #define OP_BACKSPACE    1
  2. #define OP_COPY         2
  3. #define OP_MOVE         3
  4. #define OP_DELETE       4
  5. #define OP_PASTE        5
  6. #define OP_UNDO         6
  7. #define OP_REDO         7
  8. #define OP_INSERT       8
  9.  
  10. void applyop(int idx, int n, FILE *f, NODE **h, int v[8], int pos)
  11. {
  12.     int i;
  13.     char buff[64];
  14.  
  15.     for (i = 0; i < n; i++)
  16.     {
  17.         fgets(buff, 64, f);
  18.  
  19.         if (i != idx)
  20.             continue;
  21.  
  22.         switch (v[i])
  23.         {
  24.             case OP_BACKSPACE:
  25.             {
  26.                 // aplici backspace cu parametrul pos si h
  27.             }
  28.             case OP_PASTE:
  29.             {
  30.                 // la fel
  31.             }
  32.             case OP_MOVE:
  33.             {
  34.                 x = atoi(buff + 5);
  35.  
  36.                 // aplici move cu parametrii x, h, pos
  37.             }
  38.             // etc
  39.         }
  40.     }
  41. }
  42.  
  43. fscanf(f, "%d", &n);
  44. getchar();
  45.  
  46. for(i = 0; i < n; i++)
  47. {
  48.     fgets(buff, 64, f);
  49.  
  50.     if (!strcmp(buff, "backspace"))
  51.         v[i] = OP_BACKSPACE;
  52.  
  53.     else if (!strcmp(buff, "undo"))
  54.         v[i] = OP_UNDO;
  55.  
  56.     else if (!strcmp(buff, "redo"))
  57.         v[i] = OP_REDO;
  58.  
  59.     else if (!strcmp(buff, "paste"))
  60.         v[i] = OP_PASTE;
  61.  
  62.     else if (!strstr(buff, "copy"))
  63.         v[i] = OP_COPY;
  64.  
  65.     else if (!strstr(buff, "delete"))
  66.         v[i] = OP_DELETE;
  67.  
  68.     else if (!strstr(buff, "insert"))
  69.         v[i] = OP_INSERT;
  70.  
  71.     else
  72.         v[i] = OP_MOVE;
  73. }
  74.  
  75. for (i = 0, undo = -1; i < n; i++)
  76. {
  77.     if (i+1 < n)
  78.     {
  79.         if (v[i+1] == OP_UNDO)
  80.             undo = i;
  81.     }
  82.  
  83.     if (undo == i)
  84.         continue;
  85.    
  86.     if (v[i] == OP_REDO)
  87.     {
  88.         if (undo != -1)
  89.         {
  90.             // aplica operatia undo.
  91.             undo = -1;
  92.         }
  93.         else
  94.             printf("Nu a fost gasita nicio operatie undo precedenta!");
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement