I can understand you desire to simplify capturing of tabular material and to keep the mark-up clean.
Normally, what I do for complicated tables is firstly to simplify the row entries. In your case we will mark the table data as follows:
\starttable
\R test|test|test|test\\
\R test|test|test|test\\
\R test|test|test|test\\
\stoptable
I find using an "|" is easier to the eye than an "&" and the marked up text looks more tidy.
The \starttable and \stoptable are just two macros to hold the head and end materials.
\documentclass{article}
\begin{document}
\def\starttable{%
\begin{table}[!htbp]
\renewcommand{\arraystretch}{1.1}
\begin{tabular}{|c|c|c|c|}
\hline
Text-1 & Text-2 & Text-3 & Text-4 \\
\hline}
\def\stoptable{\hline\end{tabular}\end{table}}
\def\R #1|#2|#3|#4{ #1}
\starttable
\R test|test|test|test\\
\R test|test|test|test\\
\R test|test|test|test\\
\stoptable
\starttable %badly marked up table rather use the "|"
& & & \\
& & & \\
& & & \\
\stoptable
\end{document}
Captions and other styling information can be added by modifying the \startmacro to take a parameter.
\def\starttable#1{%
\begin{table}[!htbp]
\caption{#1}
...
I am not sure if you always have "double tables". In such a case I will rewrite the above in a different set of macros, such as \starttwotables and \endtwotables. Please note that LaTeX will not allow you to define a macro starting with an \end unless it is an environment.
Edit for multi-tables
You can add one or more tables with same syntax as above. Enclose in \begin{table}..., if you need them to float or leave it out for immediate placement.
\documentclass{article}
\makeatletter
\usepackage[figurename=Figure.,
justification=RaggedRight,
labelfont={bf, footnotesize},
textfont={footnotesize},position=top]{caption}
\begin{document}
\listoftables
\def\starttable#1{%
\renewcommand{\arraystretch}{1.1}%
\minipage{0.45\textwidth}
\captionof{table}{#1}
\tabular{|c|c|c|c|}
\hline
Text-1 & Text-2 & Text-3 & Text-4 \\
\hline
}
\def\stoptable{%
\hline\endtabular
\endminipage\hspace{10pt}}
\def\R #1|#2|#3|#4{ #1}
\newpage
\begin{table}[h]
\centering
\starttable{First table caption}
\R test|test|test|test\\
\R test|test|test|test\\
\R test|test|test|test\\
\stoptable
%
\starttable{This is the second caption}
\R test|test|test|test\\
\R test|test|test|test\\
\R test|test|test|test\\
\stoptable
\bigskip
\starttable{This is the caption}
\R test|test|test|test\\
\R test|test|test|test\\
\R test|test|test|test\\
\stoptable
%
\starttable{This is the caption}
\R test|test|test|test\\
\R test|test|test|test\\
\R test|test|test|test\\
\stoptable
\starttable{This is the caption}
\R test|test|test|test\\
\R test|test|test|test\\
\R test|test|test|test\\
\stoptable
\end{table}
\end{document}
Other approaches are also possible.
\mytable...\endmytablerefers to thetabularand not thetable, right? – Werner Mar 02 '12 at 00:21