I want to insert file2 in file1 either after architecture line or before signal line... i.e. i want to insert this component in this component declaration part....Give me some idea to do this monks....
Easy:
- Assuming Windows: Start the build-in editor (notepad.exe). Open file1. Position the cursor after the architecture line or before the signal line. Start another instance of the editor. Open file2. Press Ctrl-A to mark the entire file. Press Ctrl-C to copy it to the clipboard. Switch back to the first editor instance. Press Ctrl-V to paste from the clipboard. Save the file.
- Assuming Unix/Linux with joe: Enter joe file1 file2 at the command prompt. Position the cursor after the architexture line or before the signal line. Press Ctrl-K, then N to switch to file2. Press Ctrl-K, then B to mark the start of a block. Press Ctrl-K, then Ctrl-V to move to the end of file2. Press Ctrl-K, then K to mark the end of a block. Press Ctrl-K, then P to switch back to file1. Press Ctrl-K, then C to copy the block into file1. Press Ctrl-K, then D to save file1. Press Ctrl-C to leave joe.
Or did you expect us to write code for a general solution?
OK, how about this:
Enable strict checks and warnings.
Load a module that automatically handles I/O errors.
Open file handle IN1 for reading from "file1".
Open file handle OUT for writing to "result".
While reading a line from IN1 does not indicate end-of-file:
Write the line just read to OUT.
If the line just read contains "architecture":
Open file handle IN2 for reading from "file2".
While reading a line from IN2 does not indicate end-of-file:
Write the line just read to OUT.
Close file handle IN2.
Close file handle OUT.
Close file handle IN1.
Hint for the first line: use strict; use warnings;. Hint for the error handling module: autodie. Everything else is in perlfunc.
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)