Hallo nochmal,
hab da jetzt noch ein c-programm gefunden, vielleicht hilft es ja jemanden weiter um auf die lösung zu kommen.
Mir leider nicht, klapp überhaupt nicht.
#include <stdio.h>
#include <string.h>
#include <uf.h>
#include <uf_ui.h>
#include <uf_draw.h>
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
static int report_error( char *file, int line, char *call, int irc)
{
if (irc)
{
char err[133],
msg[133];
sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
irc, line, file);
UF_get_fail_message(irc, err);
/* NOTE: UF_print_syslog is new in V18 */
UF_print_syslog(msg, FALSE);
UF_print_syslog(err, FALSE);
UF_print_syslog("\n", FALSE);
UF_print_syslog(call, FALSE);
UF_print_syslog(";\n", FALSE);
if (!UF_UI_open_listing_window())
{
UF_UI_write_listing_window(msg);
UF_UI_write_listing_window(err);
UF_UI_write_listing_window("\n");
UF_UI_write_listing_window(call);
UF_UI_write_listing_window(";\n");
}
}
return(irc);
}
/*ARGSUSED*/
static int mask_for_tabular_notes(UF_UI_selection_p_t select, void *type)
{
UF_UI_mask_t
mask = { UF_tabular_note_type, 0, 0 };
if (!UF_CALL(UF_UI_set_sel_mask(select,
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC, 1, &mask)))
return (UF_UI_SEL_SUCCESS);
else
return (UF_UI_SEL_FAILURE);
}
static tag_t select_a_tabular_note(char *prompt)
{
int
resp;
double
cp[3];
tag_t
object,
view;
UF_CALL(UF_UI_select_with_single_dialog("Select a tabular note", prompt,
UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY, mask_for_tabular_notes, NULL, &resp,
&object, cp, &view));
if (resp == UF_UI_OBJECT_SELECTED | | resp == UF_UI_OBJECT_SELECTED_BY_NAME)
{
UF_CALL(UF_DISP_set_highlight(object, 0));
return object;
}
else return NULL_TAG;
}
static void do_it(void)
{
int
ii,
jj;
tag_t
tabular_note;
UF_DRAW_tabnot_params_t
tn_parms;
UF_DRAW_tabnot_eval_data_t
eval_data;
UF_DRAW_tabnot_cell_params_t
cell_params;
UF_DRAW_tabnot_cell_eval_data_t
cel_eval_data;
char
msg[133],
sizemsg[100];
while ((tabular_note = select_a_tabular_note("Select a tabular note"))
!= NULL_TAG)
{
UF_CALL(UF_DRAW_ask_tabular_note_params(tabular_note, &tn_parms,
&eval_data));
sprintf(sizemsg, "There are %d rows (%d - %d) and %d cols (%d - %d)",
(tn_parms.range_end.row - tn_parms.range_start.row + 1),
tn_parms.range_start.row, tn_parms.range_end.row,
(tn_parms.range_end.col - tn_parms.range_start.col + 1),
tn_parms.range_start.col, tn_parms.range_end.col);
uc1601(sizemsg, TRUE);
UF_UI_open_listing_window();
for (ii = tn_parms.range_start.row;
ii <= tn_parms.range_end.row; ii++)
{
for (jj = tn_parms.range_start.col;
jj <= tn_parms.range_end.col; jj++)
{
UF_CALL(UF_DRAW_read_tabnot_cell(tabular_note, ii, jj,
&cell_params, &cel_eval_data));
sprintf(msg, "[%d][%d]Text: %s\t ", ii, jj, cell_params.cell_text);
UF_UI_write_listing_window(msg);
}
UF_UI_write_listing_window("\n");
}
}
}
/*ARGSUSED*/
void ufusr(char *param, int *retcode, int paramLen)
{
if (UF_CALL(UF_initialize())) return;
do_it();
UF_terminate();
}
int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
Danke für eure hilfe in voraus
Gruß l.pesch
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP