Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Inhalt von Tableview als Datei speichern und wieder laden?!?

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
mikelchris
•->
•->


Anmeldedatum: 10.03.2004
Beiträge: 7

BeitragVerfasst am: 27.05.2005 - 20:50    Titel: Inhalt von Tableview als Datei speichern und wieder laden?!? Antworten mit Zitat

Hallo,

ich habe ein Programm geschrieben, bei dem QuarkXpress-Dateien aus einem bestimmten Verzeichnis in einem Tableview als Liste angezeigt werden.
Mein Tableview hat 4 Spalten und nun möchte ich den kompletten Inhalt (jede Spalte und jede Zeile) als Dateiliste abspeichern. Wie kann ich das machen? Ich möchte die Dateiliste auch wieder einladen können, so dass die Spalten und Zeilen wieder entsprechend mit den Ursprungsdaten gefüllt werden.

Vielen Dank für Eure Hilfe im Voraus!

Gruß
Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
mikelchris
•->
•->


Anmeldedatum: 10.03.2004
Beiträge: 7

BeitragVerfasst am: 12.06.2005 - 19:49    Titel: Antworten mit Zitat

Kann mir denn hier wirklich keiner helfen?
oder wollt ihr etwa nicht! Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Heiner
•-->
•-->


Anmeldedatum: 03.12.2005
Beiträge: 62
Wohnort: Moers

BeitragVerfasst am: 04.12.2005 - 15:36    Titel: Antworten mit Zitat

Hallo mikelchris,
ich kann Dir erst jetzt antworten, da ich selbst erst seit zwei Tagen im 'Club' bin. Deshalb weiß ich nicht, ob Dein Problem noch aktuell ist. Ich habe ein ähnliches Problem zu lösen gehabt und auch eine Lösung gefunden. Sie mag möglicherweise nicht sehr elegant sein, ein erfahrener Programmierer wird sicher eine schönere Lösung haben, aber meine funktioniert.
Ich hänge sie unten an, Du musst sie möglicherweise auf Deine Bedürfnisse anpassen.

Gruß Heiner

[property meinedaten : null
property tmpFilePath : missing value
property theFileName : missing value
property oldFileName : ""

on awake from nib theObject
set meinedaten to data source of table view "daten" of scroll view "daten" of theObject
tell meinedaten
-- z.B.:
make new data column at the end of the data columns with properties {name:"name", sort order:ascending, sort type:alphabetical, sort case sensitivity:case sensitive}
-- usw.

set sorted of meinedaten to true
set sort column of meinedaten to data column "name" of meinedaten
end tell
end awake from nib


on choose menu item theObject
if name of theObject is "sichernAls" then
SichernAls()
end if
if name of theObject is "oeffnen" then
oeffnen()
end if
end choose menu item



on update menu item theObject
if name of theObject is "sichernAls" then
return true
end if
if name of theObject is "oeffnen" then
return true
end if
end update menu item



on SichernAls()
set oldFileName to title of front window
tell save panel
set title to "Mein Programm: Sichern"
set prompt to "Sichern"
end tell

set theResult to display save panel with file name oldFileName
if theResult is 1 then -- Save
set meinedaten to data source of table view "daten" of scroll view "daten" of front window
set dieListe to ""
set dieZeile to ""
repeat with reihenindex from 1 to count of data rows of meinedaten
repeat with spaltenindex from 1 to 12
set dieZeile to ""
set dieZeile to dieZeile & (contents of data cell spaltenindex of data row reihenindex of meinedaten) & "|"
set dieListe to (dieListe & dieZeile)

end repeat
end repeat
set dieListe to (dieListe & eof)
try
set fileName to (path name of save panel as POSIX file)
set tmpFilePath to (fileName as file specification) -- speichert den file Namen für Menü "Sichern"

set theFile to open for access fileName with write permission
set eof theFile to 0
write dieListe to theFile as string starting at eof
close access theFile

set oldTextItemDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to {":"}
set neuerName to (last text item of (fileName as string))
set AppleScript's text item delimiters to oldTextItemDelimiters
set title of window oldFileName to neuerName

return true
on error
try
display dialog "Fehler beim Sichern der Datei!" with icon 2
close access file theFile
end try
return false
end try

else if theResult is 0 then -- Cancel
close save panel
return false
end if
end SichernAls


on oeffnen()
set theContents to ""
tell open panel
set title to "Mein Programm: Öffnen"
set prompt to "Öffnen"
set can choose directories to true
set can choose files to true
end tell

set theResult to display open panel
if theResult is 1 then -- Open
try
set fileName to (path name of open panel)
set theFile to open for access fileName as POSIX file
set theContents to read theFile as string
close access theFile
on error
try
display dialog "Fehler beim Öffnen der Datei!" with icon 2
close access file theFile
return false
end try
return true
end try
set oldTextItemDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to {"/"}
set neuerName to (last text item of (fileName as string))
set AppleScript's text item delimiters to oldTextItemDelimiters

load nib "Document"
set name of window "Mein Window Name" to neuerName
set title of window neuerName to neuerName

(*-- Im Folgenden können beliebig viele Fenster erzeugt werden; die Variablen müssen aber noch als properties gesetzt werden. Man kann aber auch darauf verzichten.
set windowCount to windowCount + 1
set newWindowLeft to (windowStartLeft + windowCount * windowOffset)
set newWindowtop to (windowStartTop - windowCount * windowOffset)
set newWindowBottom to (windowStartbottom - windowCount * windowOffset)
set newWindowRight to (windowStartright + windowCount * windowOffset)
set bounds of window neuerName to {newWindowLeft, newWindowBottom, newWindowRight, newWindowtop}*)

set visible of window neuerName to true
try
set update views of meinedaten to false
set oldTextItemDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to {"|"}
-- die Daten liegen als zusammenhängender string vor und müssen wieder als Zeilen erkannt werden; s. oben
set reihenAnzahl to ((count of text items of theContents) - 1) / 4 as integer -- hier muss man möglicherweise korrigieren
set itemNummer to 0
repeat with m from 1 to reihenAnzahl
set theDataRow to make new data row at the end of data rows of meinedaten
repeat with n from 1 to 4
set contents of data cell n of theDataRow to text item (n + itemNummer) of theContents
end repeat
set itemNummer to (itemNummer + n)
end repeat
set AppleScript's text item delimiters to oldTextItemDelimiters
set update views of meinedaten to true
on error
display dialog "Fehler beim Schreiben der Datei!" with icon 2
return false
end try

else if theResult is 0 then -- Cancel
close open panel
return false
end if

return true
end oeffnen

][/code]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter