Forum Programmation.shell Probleme pour un fichier creer par un script

Posté par  .
Étiquettes : aucune
0
17
juil.
2005
Salut,

je suis debutante dans la programmation shell et j ai essaye de creer un fichier qui pourra etre lu par un autre programme(smodels, dlv en programmation logique). En faite avec mon script j´ essaye de generer des nombres aleatoires que je sauvegarde dans le fichier "db.lp". Le script contient contient a peu pres ceci:

echo "Geben Sie bitte die Anzahl, die zu Ziehenden Fragen"
echo -n "Anzahl Fragen: "
read anz_f
if [ $anz_f == 0 ] || [ -z $anz_f ];
then
echo "Sie haben keine gültige Nummer eingegeben"
else
echo "% ANFORDERUNG 1: Anzahl der zu ziehenden Fragen:" >> db.lp
echo "#const anz_gez = $anz_f" >> db.lp
echo "" >> db.lp
fi

while [ `cat tmp | wc -l` -lt $MAX_FRAGEN_THEMA ]; do
for i in $(seq 0 $MAX_FRAGEN_THEMA ); do
echo -n "fragen(${fragen[$((RANDOM%num_fragen))]}, " >> tmp
echo -n "${themen[$((RANDOM%num_themen))]}, " >> tmp
echo "${grad[$((RANDOM%num_grad))]})." >> tmp
i=$[ $i + 1 ];
done

sort tmp | uniq > tmp
done

cat tmp | sort -n >> db.lp

fragen, themen, grad sont des champs que genere avant. En ce qui concerne le code je suis debutante surement il y a des meilleures solutions.

Le fichier "db.lp" contient:

% ANFORDERUNG 1: Anzahl der zu ziehenden Fragen:
#const anz_gez = 5

thema(thA).

fragen(f1, thB, schwer).
fragen(f10, thA, mittle).
fragen(f10, thC, leicht).

J ecris en allemand, mais la n est pas le probleme. Donc j essaye de generer un certain nombre aleatoire de question, par exemple "f1", ayant pour theme "thB" et pour difficulte "difficile".
Pour etre lu j ecris la commande "lparse db.lp fichier.lp | smodels". Mais malheureusement le parser ne reconnait pas #const, lorsque j ecrit a la main il n y a pas de probleme.

Est ce qu´il serait possible que #const generer par le script soit different?

Merci d avance pour vos aides.

jony
  • # heu

    Posté par  . Évalué à 5.

    J'ecris en allemand, mais la n'est pas le probleme.
    ben pour ceux qui n'y comprennent rien comme moi, si, c'est une partie du probleme.

    et encore t'as le la change j'ai deviné ce que veux dire "themen" et je subodore que "fragen" veux dire phrase ... parceque les nom de variable en allemend c'est sympas :)

    si tu ne vois pas de quoi je veux parler, imagine ton script avec tu chinois...

    bon, moi je laisse la main à qqun de plus motivé, ou qui connais la langue allemande...
    • [^] # heum

      Posté par  . Évalué à 1.

      okay j essaye d ecrire en francais
    • [^] # Re: heu

      Posté par  . Évalué à 2.

      Use the Babelfish, luke ...
  • # code Traduit

    Posté par  . Évalué à 1.

    #!/bin/sh
    echo "Donnez un chiffre"
    echo -n "nombre de question: "
    read nombre_de_question
    if [ $nombre_de_question == 0 ] || [ -z $nombre_de_question ];
    then
    echo "Erreur, donner un chiffre"
    else
    echo "Nombre de question a choisir" >> db.lp
    echo "#const nombre_question_a_choisir = $nombre_de_question " >> db.lp
    echo "" >> db.lp
    fi

    while [ `cat tmp | wc -l` -lt $MAX_QUESTION_THEME ]; do
    for i in $(seq 0 $MAX_MAX_QUESTION_THEME ); do
    echo -n "question(${question[$((RANDOM%nombre_de_question))]}, " >> tmp
    echo -n "${theme[$((RANDOM%nombre_de_theme))]}, " >> tmp
    echo "${difficulte[$((RANDOM%nombre_de_difficulte))]})." >> tmp
    i=$[ $i + 1 ];
    done

    sort tmp | uniq > tmp
    done

    cat tmp | sort -n >> db.lp

    Le fichier "db.lp" contient:

    % nombre de question::
    #const nombre_question_a_choisir = 5

    theme(thA).

    question(f1, thB, difficile).
    question(f10, thA, moin_difficile).
    question(f10, thC, facile).

    question, theme, difficulte sont des champs comme je l ai deja ecrit representant les questions, les themes et les difficulte. Je n ai pas donne tout le code, mais si c est important pas de probleme.
    • [^] # Re: code Traduit

      Posté par  . Évalué à 1.

      je viens de trouver mon erreur. En faite j ai oublie un point qui m a coute bcp de temps

      Merci pour vos reactions

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.