# Variable in Schleife zu Beginn nicht defiiert

**URL:** https://community.mp3tag.de/t/variable-in-schleife-zu-beginn-nicht-defiiert/16394
**Category:** Allgemein
**Created:** [December 7, 2014, 4:02pm UTC](https://community.mp3tag.de/t/variable-in-schleife-zu-beginn-nicht-defiiert/16394 "2014-12-07T16:02:12Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![user2](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/u/ecb155/32.png) [@user2](https://community.mp3tag.de/u/user2)
#### Post date: [December 7, 2014, 4:02pm UTC](https://community.mp3tag.de/t/variable-in-schleife-zu-beginn-nicht-defiiert/16394/1 "2014-12-07T16:02:12Z")

</div>

Ich habe zwei Abfragen.  
Die erste liest den Album-Interpreten und den Titel aus. Diese funktioniert.  
Die zweite Abfrage soll nun Details pro Titel auslesen.  
Für das Album möchte ich eine eindeutige UID erstellen, damit ich sie später in der Datenbank verknüpfen kann.  
Nur aus irgendeinem mir nicht klaren Grund gibt er beim ersten Album Durchlauf keine uid aus und beginnt dann mit 1! ![:angry:](https://community.mp3tag.de/uploads/default/original/1X/ebadaff04ae073d3d1cb3e2f4c6acf132380e5a5.gif ":angry:")  
Wer hat den Bohrer für mein Brett vorm Kopf?

Danke.  
Gruß Bernd

```
$filename(DB_CSV_Album_Details.csv,utf-16)
Artist;Titel;Track;Dauer;MB
$puts(uid, 1)
$loop(%_folderpath%)
    $puts(uid, $add($get(uid), 1) )
    $loop(%track%)
       $get(uid);%_counter%;%artist%;%title%;%track%;%_length_seconds%;%_file_size%
    $loopend()
$loopend()
```

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [December 7, 2014, 7:18pm UTC](https://community.mp3tag.de/t/variable-in-schleife-zu-beginn-nicht-defiiert/16394/2 "2014-12-07T19:18:37Z")

</div>

DetlevD hat dazu eine Anmerkung im englischen Forum geschrieben. Die ist aber kurz ...  
[[X] Export scripting: unexpected variable assignment between loops](https://community.mp3tag.de/t/15746/1)  
vielleicht nützt die was.

---

<div class="post-metadata">

### Author: ![user2](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/u/ecb155/32.png) [@user2](https://community.mp3tag.de/u/user2)
#### Post date: [December 7, 2014, 11:08pm UTC](https://community.mp3tag.de/t/variable-in-schleife-zu-beginn-nicht-defiiert/16394/3 "2014-12-07T23:08:03Z")

</div>

Danke für den Hinweis, aber das übersteigt meine Programmierkünste ![:unsure:](https://community.mp3tag.de/uploads/default/original/1X/cfaeba84fe6704387c5b34dfdd8172bd51b6f533.gif ":unsure:")

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [December 8, 2014, 5:13am UTC](https://community.mp3tag.de/t/variable-in-schleife-zu-beginn-nicht-defiiert/16394/4 "2014-12-08T05:13:54Z")

</div>

So wie ich es interpretiere, muss die Variable innerhalb einer Schleife gesetzt werden, auch wenn diese Schleife nur einmal durchlaufen wird.  
Du müsstest also vor dem  
$puts(uid, 1)  
ein  
$loop(1,1)  
einfügen :  
$loop(1,1)  
$puts(uid, 1)  
und am Ende ein weiteres $loopend(), um die zusätzliche Schleife zu schließen.

---

<div class="post-metadata">

### Author: ![user2](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/u/ecb155/32.png) [@user2](https://community.mp3tag.de/u/user2)
#### Post date: [December 8, 2014, 9:44pm UTC](https://community.mp3tag.de/t/variable-in-schleife-zu-beginn-nicht-defiiert/16394/5 "2014-12-08T21:44:21Z")

</div>

```
$filename(DB_CSV_Album_Details.csv,utf-16)
Artist;Titel;Track;Dauer;MB
$loop(1,1)
$puts(uid, 1)
$loopend()
$loop(%_folderpath%)
    $puts(uid, $add($get(uid), 1) )
    $loop(%track%)
       $get(uid);%_counter%;%artist%;%title%;%track%;%_length_seconds%;%_file_size%
    $loopend()
$loopend()

```

Herzlichen Dank für die Lösung. Funktioniert wie ich es mir vorgestellt habe.  
Den Sinn einer "leeren" Schleife verstehe ich aber immer noch nicht ☹

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [January 4, 2015, 11:05am UTC](https://community.mp3tag.de/t/variable-in-schleife-zu-beginn-nicht-defiiert/16394/6 "2015-01-04T11:05:20Z")

</div>

> [@Bernd2](#):
>
> ... Nur aus irgendeinem mir nicht klaren Grund gibt er beim ersten Album Durchlauf keine uid aus und beginnt dann mit 1! ... Wer hat den Bohrer für mein Brett vorm Kopf? ...

Hallo Bernd2, ich schließe mich an, es ist und bleibt unverständlich.

Zum Beispiel dieses Exportskript ...

**1: $filename($getEnv('USERPROFILE')'\Desktop\Test.txt',UTF-8)** 

**2: $loop(1,1)'uid\_a='$put(uid,1)$loopend()  
3: 'uid\_b='$get(uid)  
4: 'UID;Counter;"Artist";"Title";"Track";Duration;"MB"'  
5: $loop(%\_folderpath%)  
6: 'uid\_c='$get(uid)  
7: 'uid\_d='$put(uid,$add(1,$get(uid)))  
8: $loop(%TRACK%)$get(uid)';'%\_counter%';"'%ARTIST%"';"'%TITLE%'";"'%TRACK%'";'%\_length\_seconds%';"'%\_file\_size%'"'  
9: $loopend()$loopend()**

 

... erzeugt diese Ausgabe ...

  **uid\_a=1 uid\_b=4 UID;Counter;"Artist";"Title";"Track";Duration;"MB" uid\_c=1 uid\_d=2 1;1;"Air";"Venus";"1/10";245;"8,41 MB" 1;2;"Air";"Cherry Blossom Girl";"2/10";220;"7,48 MB" 1;3;"Air";"Run";"3/10";253;"7,64 MB" uid\_c=2 uid\_d=3 2;1;"Al Di Meola";"Flight Over Rio";"1/6";437;"6,68 MB" 2;2;"Al Di Meola";"Midnight Tango";"2/6";449;"6,86 MB" 2;3;"Al Di Meola";"Mediterranean Sundance";"3/6";314;"4,81 MB" uid\_c=3 uid\_d=4 3;1;"Alannah Myles";"Still Got This Thing";"1/10";278;"7,27 MB" 3;2;"Alannah Myles";"Love Is";"2/10";218;"5,75 MB" 3;3;"Alannah Myles";"Black Velvet";"3/10";288;"6,63 MB"** 

DD.20150104.1308.CET
