Aktuelle Zeit: 5. Aug 2020, 12:38
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Befehl INPUT
BeitragVerfasst: 10. Apr 2017, 18:37 
Offline
Mitglied

Registriert: 17. Apr 2015, 12:44
Beiträge: 96
Land: AT
Betriebsystem: Windows 8.1
Ich versuche daten aus eineer Textdatei im gdl auszulesen.

!MASTER-SCRIPT

DIM bitmap[]

Ordner= OPEN ("FileMan", verz, "FILES, DIALOG")
linecont=1
n = INPUT (Ordner, 0, 0, datName)
WHILE n=1 DO
bitmap[linecont]=datName
linecont=linecont+1
n = INPUT (Ordner, 0, 0, datName)
ENDWHILE
CLOSE Ordner

!PARAMETER-SCRIPT
VALUES "dateiname" bitmap


Diesen code habe von selfgdl.de

ich würde annehmen daß der Parameter schlußendlich die Werteauswahl bekommt welche in der Datei Stehen.

bei mir geschieht allerdings garnichts.

Auch mit:

Ordner= OPEN ("FileMan", verz, "FILES, DIALOG")

n = INPUT (Ordner, 0, 0, datName)

TEXT2= datName

CLOSE Ordner

geschieht nichts.

Umgekehrt habe ich ohne probleme Text mit Output in eine txt-Datei exportieren können.

Was mache ich falsch? THX

_________________
ARCHICAD 20, Voll, At, Windows 7


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 11. Apr 2017, 16:19 
Offline
Forum Veteran

Registriert: 23. Sep 2002, 01:01
Beiträge: 2026
Da stimmt die Doku nicht. Probiere es mal mit:

Code:
n = INPUT (Ordner, linecont, 1, datName)


Und ersetze mal überall Ordner durch kanal.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 12. Apr 2017, 09:30 
Offline
Mitglied

Registriert: 17. Apr 2015, 12:44
Beiträge: 96
Land: AT
Betriebsystem: Windows 8.1
ändert leider nichts. der code sieht jetz mal so aus:

datName= "datname"

DIM bitmap[]

Ordner=OPEN("DATA","C:\U[...]\tet-dataIAC.txt", "MODE=RO, SEPARATOR=':', FULLPATH")
linecont=1
n = INPUT (Ordner, linecont, 1, datName)
WHILE n=1 DO
PARAMETERS bitmap[linecont]=datName
linecont=linecont+1
n = INPUT (Ordner, linecont, 1, datName)
ENDWHILE



CLOSE Ordner

TEXT2 0,1, Ordner ! Ergebniss = 1
TEXT2 0,0, datName !Ergemniss = datname
TEXT2 0,-1, bitmap[1] ! Ergebniss = 0 wobei Fehlermeldnug, daß der Index zu groß ist.

_________________
ARCHICAD 20, Voll, At, Windows 7


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 12. Apr 2017, 10:30 
Offline
Mitglied

Registriert: 17. Apr 2015, 12:44
Beiträge: 96
Land: AT
Betriebsystem: Windows 8.1
So geht es:

DIM data[][]

CH1=OPEN("TEXT","C:\[...]\tet-dataIAC.txt", "MODE=RO, SEPARATOR=':', FULLPATH")

FOR ny=1 TO 7

FOR nx=1 TO 5
nk = INPUT (CH1, ny, nx, data[ny][nx])
PARAMETERS dataLI[ny][nx]= data[ny][nx]
NEXT nx

NEXT ny

CLOSE CH1

nd=1

FOR ny=1 TO 7
nd=nd-1 : TEXT2 0,nd, data[ny][1]+ data[ny][2]+ data[ny][3]+ data[ny][4]+ data[ny][5]
NEXT ny

Allerdings kann er mit "TEXT" scheinbar Zahlenwerte nicht lesen. Er zeigt in der Zeile entweder garnicht oder eine "0" an.
Ich habe es mit "DATA" versucht, da bekomme ich für TEXT2 pro zeile immer nur eine 0

_________________
ARCHICAD 20, Voll, At, Windows 7


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 12. Apr 2017, 16:09 
Offline
Mitglied

Registriert: 17. Apr 2015, 12:44
Beiträge: 96
Land: AT
Betriebsystem: Windows 8.1
Bei "Output" erhöffnet sich das Problem die Daten in mehrere Zeilen zu schreiben

ch1 = open ("DATA", "C:\[...]\APLi-dataOAC1.txt", "SEPARATOR=':', mode = WO")

var1="a"
var2="b"
var3="c"
var4="d"
var5="e"


output ch1, "i", 1, var1, var2, var3, var4, var5
output ch1, "go", 1, var1, var2, var3, var4, var5
output ch1, "out", 1, var1, var2, var3, var4, var5

close ch1

Die Daten werden in eine Zeile geschrieben wobe zwischen der letzten Variable und der feldID kein Trennzeichen ist:

go:a:b:c:d:ei:a:b:c:d:eout:a:b:c:d:e

_________________
ARCHICAD 20, Voll, At, Windows 7


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 13. Apr 2017, 00:01 
Offline
Forum Veteran
Benutzeravatar

Registriert: 26. Mai 2002, 01:01
Beiträge: 927
Wohnort: Osterwald
Land: DE
Betriebsystem: MacOS 10.11
Warum nimmst Du nicht das Text-Addon zum Schreiben?
ch1 = OPEN("TEXT", path + "/" + name_2d + file_ending, "MODE=WO, FULLPATH")

Schreib das mal in folgender Form; dann bekomst Du Zeilenumbrüche;
Wenn Du "" als Wert nimmst, auch Leerzeilen:
OUTPUT ch1, 1, 0, _end1
OUTPUT ch1, 1, 0, _end1
OUTPUT ch1, 1, 0, ""
OUTPUT ch1, 1, 0, _end2
OUTPUT ch1, 1, 0, ""
OUTPUT ch1, 1, 0, _end1
OUTPUT ch1, 1, 0, _end1

In Deinem Fall:
output ch1, 1, 0, var1, var2, var3, var4, var5

Wie das mit dem DATA-Addon geht, weiss ich momentan nicht.

_________________
ArchiCAD 12 - 24 | iMac 3.5 Ghz | Mac OS X 10.13 | Win 10


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 13. Apr 2017, 00:08 
Offline
Forum Veteran
Benutzeravatar

Registriert: 26. Mai 2002, 01:01
Beiträge: 927
Wohnort: Osterwald
Land: DE
Betriebsystem: MacOS 10.11
Also folgendes:

OUTPUT ch2,"Material",1,txt1,txt2,txt3
OUTPUT ch2,"Oberfläche",1,txt1,txt2,txt3

gibt bei mir folgendes Ergebnis (mit Umbruch) mit dem Data-Addon:

Material:Holz:Glas:Eisen
Oberfläche:Holz:Glas:Eisen

Auch bei Deinem Script kommt bei mir folgendes raus:
i:a:b:c:d:e
go:a:b:c:d:e
out:a:b:c:d:e

_________________
ArchiCAD 12 - 24 | iMac 3.5 Ghz | Mac OS X 10.13 | Win 10


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 13. Apr 2017, 00:27 
Offline
Forum Veteran
Benutzeravatar

Registriert: 26. Mai 2002, 01:01
Beiträge: 927
Wohnort: Osterwald
Land: DE
Betriebsystem: MacOS 10.11
Aha: Auf Windows mit AC 20 ist es so, wie Du beschreibst.
Eindeutig ein Bug: Bitte an Graphisoft melden.
Auf dem Mac, wo ich es vorhin probiert hatte, ist alles in Ordnung.

_________________
ArchiCAD 12 - 24 | iMac 3.5 Ghz | Mac OS X 10.13 | Win 10


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 13. Apr 2017, 10:46 
Offline
Forum Veteran
Benutzeravatar

Registriert: 2. Jun 2004, 01:01
Beiträge: 2295
Wohnort: Hamburg
Lest mal die Ergebnisdatei mit einem vernünftigen Editor. Z.B. Sublime/Notepad++ und stellt da mal die Zeilenende-Codierung von Win/Mac/Linux um.

Das ist nämlich nicht einheitlich. Das kann:

Carriage Return
Line feed
Carriage Return + Line feed

aAlso:
CHAR(9)
CHAR(10)
CHAR(9) + CHAR(10)

sein. Siehe ASCII oder hier.
Vielleicht leigt es daran.

@Jochen
Das hatten wir gerade mit dem UTF-8 Export von Sonderzeichen. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 13. Apr 2017, 11:28 
Offline
Forum Veteran
Benutzeravatar

Registriert: 2. Jun 2004, 01:01
Beiträge: 2295
Wohnort: Hamburg
Der Korrektheit halber, es muss heißen:
CHAR(13)
CHAR(10)
CHAR(13) + CHAR(10)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 13. Apr 2017, 12:30 
Offline
Forum Veteran
Benutzeravatar

Registriert: 26. Mai 2002, 01:01
Beiträge: 927
Wohnort: Osterwald
Land: DE
Betriebsystem: MacOS 10.11
[quote="Jochen Suehlo"]Eindeutig ein Bug

Das ziehe ich zurück. Frank hat Recht.
Notepad verschluckt die Zeilenumbrüche,
Wordpad und andere nicht.
_________________
ArchiCAD 12 - 24 | iMac 3.5 Ghz | Mac OS X 10.13 | Win 10


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 13. Apr 2017, 15:40 
Offline
Mitglied

Registriert: 17. Apr 2015, 12:44
Beiträge: 96
Land: AT
Betriebsystem: Windows 8.1
Mit notepad++ geht es hervorragend :-) und mit power query bekommt man auch noch das txt in ein excel.

jetzt muß ich es nur noch schaffen die Datein einzulesen ohne Lauter "0"er zu bekommen

_________________
ARCHICAD 20, Voll, At, Windows 7


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 13. Apr 2017, 15:54 
Offline
Forum Veteran
Benutzeravatar

Registriert: 2. Jun 2004, 01:01
Beiträge: 2295
Wohnort: Hamburg
Darf ich mal fragen, was der Zweck der "Übung" ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 13. Apr 2017, 16:30 
Offline
Mitglied

Registriert: 17. Apr 2015, 12:44
Beiträge: 96
Land: AT
Betriebsystem: Windows 8.1
Ich habe in einem Gdl einen Parameter mit Matrix.

1)Ich möche Diese exportieren, damit Kollegen welche diese Werte jetzt brauchen auch Zugriff darauf haben wenn ich nicht da bin. (sie haben kein Archicad)

2)Wenn sie Werte ändern würde ich Diese gerne importieren anstatt sie einzeln ändern zu müßen.

Im Endeffekt geht es um Möblierungsdaten welche ich noch in AC 17, eigentlich für mich selbst, in diese Matrix gespeichert habe. Inventarnummern, Arbeitsplatznummer, Nutzer usw.... konnte nicht wissen daß meine Daten jetzt so beliebt sind.

Ein Möbel kommt allerdings immer in zumindest zwei Standorten , manchmal mehr, vor (Herkunftsort und Zielort) Jeder Standort ist im Endeffekt eine eigene PLN.

3) Wenn beide Objekte (also zb der Sessel mit der Inventarnummer 0020) ihre Daten aus einer Liste nehmen brauche ich den Sessel 0020 nur in einer Datei ändern. nach einer Aktualisierung in der 2. Datei wären die Werte wieder ident.

Zumindest ist das der Plan. Punkt 1 (export) funktioniert jetzt schon einmal :-) für Punkt 3 habe ich eine Idee, kann sie aber erst Testen wenn Punkt 2 funktioniert

Ich weiß, das klingt alles etwas verückt. AC 17 hat mich allerding etwas gezwungen so eine Matrix zu erstellen. Jetzt zahlt es sich nicht mehr aus diese Struktur zu verändern.

es geht übrigens um etwa 250.000 Daten. Vllt. verständlich, daß ich nicht alle händisch herausschreiben möchte.

_________________
ARCHICAD 20, Voll, At, Windows 7


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Befehl INPUT
BeitragVerfasst: 13. Apr 2017, 17:54 
Offline
Forum Veteran
Benutzeravatar

Registriert: 2. Jun 2004, 01:01
Beiträge: 2295
Wohnort: Hamburg
Ich weiß nicht, wie tief du in den Möglichkeiten von Archicad steckst. Vielleicht solltest Du das Ansinnen mal mit Deinem GSP besprechen. Mir drängt sich da eher die Idee auf die Möbelobjekte zu filtern und in interaktiven Listen auszuwerten. Diese kann man ab AC20 nicht nur nach Excel exportieren, sondern auch wieder reimportieren.
Beim Schreiben in Dateien aus ArchiCAD heraus, musst Du Dich nicht nur um lesen und schreiben der Datei kümmern, sondern auch um die Berechtigungen Daten zu ändern und musst v.a. sicher stellen, dass die Reihenfolge des Lesens von Daten, sofern es mehrere Instanzen oder zugriffsberechtigte Objekte gibt , zu keinem Chaos führt.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu: