Logo Search packages:      
Sourcecode: jags version File versions  Download package

fixsmbcop.cpp

/***************************************************************************
                         fixsmbcop.cpp  -  description
                             -------------------
    begin                : Sun Jun 4 2000
    copyright            : (C) 2000 by Daniel Sundberg
    email                : dansun-8@student.luth.se
    homepage             : http://sumpan.campus.luth.se

    This program parses out either reads lines from stdin. After finding 
    two lines containing the first two args the program starts dumping 
    until last pattern is found. Can be _NEWLINE which is an empty line.

 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#include <iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int
main(int args, char *argv[]) {
  if (args > 3) {
    if (cin) {
      char *buffer = new char[100];

      while (cin.good()) {
          /* Search for start-pattern-1 */
          cin.getline(buffer, 100, '\n');
          if (!strncmp(buffer, argv[1], strlen(argv[1]) )) {
            /* Search for start-pattern-2 */
            cin.getline(buffer, 100, '\n');
            if (!strncmp(buffer, argv[2], strlen(argv[2]) )) {
            /* Here we want to start output text */
            while (cin.good()) {
              cin.getline(buffer, 100, '\n');
              
              /* Until we find the end-pattern: newline or <pattern> */
              if (!strcmp(argv[3],"_NEWLINE")) {
                if (!strcmp(buffer,"")) {
                  exit(0);
                } else {
                  cout << buffer << '\n';
                }
              } else {
                if (!strncmp(buffer, argv[3],strlen(argv[3]))) {
                  exit(0);
                } else {
                  cout << buffer << '\n';
                }
              } // Newline if
            } // while
            } else {
            exit(0);
            }// Pattern 2 if
          }
      }
    } else {
      cout << "File " << argv[1] << " not found\n";
    }
  } else {
    cout << "Usage: fixsmbcop [start-pattern1] [start-pattern2] [end-pattern]\n" << 
            "       where end-pattern can be _NEWLINE == stop parsing on next empty line\n";
  }
  return 0;
}

Generated by  Doxygen 1.6.0   Back to index