Yes, if you use the same schema for the Write File operator asthe Read File operator, you will not be able to block lname and fname.
You must create a new schema for the Write File operator.
First complete the coding in the Transform operator. Then on the Write File properties window, click the Action button next to the schema drop down control and select New Delimited Schema from Upstream Output. This will allow you to create a schema that matches the output of the Transform operator.
This occurs because the output schema - must match the up stream attributes that are coming from the transform operator. If you block attributes in a Transform Operator - and attempt to use the same schema as you defined in the Input - these errors will occur because that schema is referencing attributes that are no longer in the stream.
Please take a look at the following article(s) and video(s) that can clarify your error and other questions:
Input Schemas and Output Schemas usually are different. Refer to this video and document to see how it is used in action. http://community.qlik.com/docs/DOC-3382
Reusability comes into play when you are creating multiple projects with similar data. You can store a Schema or a Semantic type in the project or library or repository and reference later for other projects.
Hope this helps