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

Kontoauszüge csv in iBank

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
cj3000
•->
•->


Anmeldedatum: 07.01.2009
Beiträge: 2

BeitragVerfasst am: 08.01.2009 - 10:00    Titel: Kontoauszüge csv in iBank Antworten mit Zitat

Hallo Liebe AS Skripter.

Folgendes Problem vielleicht kann mir jemand weiterhelfen. Die Suche blieb derweil erfolglos. Und in Perl blicke ich so gar nicht durch.
Ich möchte mit iBank Kontoauszüge meiner Bank importieren. Das Blöde ist nur das meinen Bank diese in einem für iBank unbrauchbaren Format bereitstellt. Und zwar wird für Abgänge und Einzahlungen jeweils eine eigene Spalte verwendet. In iBank gibt es aber nur einen Posten oder Spalte für "amount" bzw. Betrag. In anderen csv Dateien von anderen Banken wird dies auch so gehandhabt nur bei meiner nicht (Deutsche Bank übrigens).

so schaut das csv aus:
Buchungstag;Wert;Verwendungszweck;Soll;Haben;Waehrung
30.12.08;30.12.08;"NIKOLAUS";;281,72;EUR
31.12.08;31.12.08;"Kontoabschluss 4. Quartal 08";-5,95;;EUR
05.01.09;05.01.09;" NIKOLAUS";;600,00;EUR
05.01.09;05.01.09;" ZAHLUNGSBELEG R 1&1 INTERNET AG";-29,99;;EUR

ihr seht das es die "Spalten" Soll und Haben gibt. Ich suche nun nach einer Lösung die mir den Soll Betrag sofern er nicht 0 ist in den Haben Betrag überschreibt. Also:

Buchungstag;Wert;Verwendungszweck;Soll;Haben;Waehrung
30.12.08;30.12.08;"NIKOLAUS";;281,72;EUR
31.12.08;31.12.08;"Kontoabschluss 4. Quartal 08";;-5,95;EUR
05.01.09;05.01.09;" NIKOLAUS";;600,00;EUR
05.01.09;05.01.09;" ZAHLUNGSBELEG R 1&1 INTERNET AG";;-29,99;EUR

Dann könnte ich ganz einfach den Haben Betrag als "amount" auslesen und alles wäre gut.

Kann mir jemand helfen?
Vielen Dank

Christoph
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ShooTerKo
•--->
•--->


Anmeldedatum: 21.03.2006
Beiträge: 221
Wohnort: Hamburg

BeitragVerfasst am: 08.01.2009 - 23:27    Titel: Antworten mit Zitat

Moin, witzige Aufgabe als reines Applescript Wink

Hier mal meine reine Applescript-Lösung:
Code:
-- File öffnen
set openedFile to open for access POSIX file "/Users/DEINUSERNAME/Desktop/Input.csv"

-- Alle Lines einlesen
set fileContentLines to paragraphs of (read openedFile)

-- File schließen
close access openedFile

-- Neues File erzeugen oder öffnen
set newFile to open for access POSIX file "/Users/DEINUSERNAME/Desktop/Output.csv" with write permission
-- Inhalt löschen
set eof newFile to 0

-- alle text items durchgehen
repeat with theLine in fileContentLines
   try
      -- Um evtl. Semikolons aus der Betreffzeile filtern
      -- text item Trennung auf " setzen
      set AppleScript's text item delimiters to "\""
      
      set firstPart to text items 1 thru 2 of theLine
      -- secondPart ist der Bereich hinter dem letzten "
      set secondPart to the third text item of theLine
      
      -- text item Trennung auf ";" setzen
      set AppleScript's text item delimiters to ";"
      
      -- einzelne text items als neue Liste holen (wichtig, um die einzelnen items setzen zu können)
      set newSecondPart to text items of secondPart
      
      -- wenn das 2. text item nicht leer ist, das 3. text item jedoch leer ist
      if the second text item of secondPart is not "" and the third text item of secondPart is "" then
         -- schiebe das 2. text item auf den 3. Platz
         set the third item of newSecondPart to the second text item of secondPart
         -- lösche das 2. item aus der Liste
         set the second item of newSecondPart to ""
      end if
      
      -- die Liste newSecondPart als String (verwendet  ; als Trennnung)
      set secondPart to (newSecondPart as string) as string
      
      set AppleScript's text item delimiters to "\""
      
      -- firstPart und secondPart als String (verwendet wieder " als Trennnung)
      write (firstPart & secondPart as string) & return to newFile starting at (get eof of newFile) + 1
      
      -- text item Trennung auf "" (Standard) setzen
      set AppleScript's text item delimiters to ""
   on error
      -- text item Trennung auf "" (Standard) setzen
      set AppleScript's text item delimiters to ""
      -- schreibe auf jeden Fall die Zeile (vermutlich die erste mit den Spaltennamen)
      write theLine & return to newFile starting at (get eof of newFile) + 1
   end try
end repeat

-- text item Trennung auf "" (Standard) setzen
set AppleScript's text item delimiters to ""

-- File schließen
close access newFile


Sollten Fragen auftreten, einfach melden!

CU
ShooTerKo
_________________
"It is a mistake to think you can solve any major problems just with potatoes." - Douglas Adams
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 09.01.2009 - 01:23    Titel: Antworten mit Zitat

das ist ja richtig aufwändig Wink
da es ja nur soll oder haben geben kann, könnte man die spalten doch auch einfach zusammenlegen, oder?:

set input to ¬
   "Buchungstag;Wert;Verwendungszweck;Soll;Haben;Waehrung
30.12.08;30.12.08;\"NIKOLAUS\";;281,72;EUR
31.12.08;31.12.08;\"Kontoabschluss 4. Quartal 08\";-5,95;;EUR
05.01.09;05.01.09;\" NIKOLAUS\";;600,00;EUR
05.01.09;05.01.09;\" ZAHLUNGSBELEG R 1&1 INTERNET AG\";-29,99;;EUR "

set output to ""
set allParagraphs to paragraphs of input
repeat with oneParagraph in allParagraphs
   set AppleScript's text item delimiters to ";"
   set temp to oneParagraph's text items
   tell temp to set zeile_out to {item 1, item 2, item 3, item 4 & item 5 as text, item 6}
   set output to (output & zeile_out as text) & return
   set AppleScript's text item delimiters to ""
end repeat

-- ERGEGNIS:
"Buchungstag;Wert;Verwendungszweck;SollHaben;Waehrung
30.12.08;30.12.08;\"NIKOLAUS\";281,72;EUR
31.12.08;31.12.08;\"Kontoabschluss 4. Quartal 08\";-5,95;EUR
05.01.09;05.01.09;\" NIKOLAUS\";600,00;EUR
05.01.09;05.01.09;\" ZAHLUNGSBELEG R 1&1 INTERNET AG\";-29,99;EUR
"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
ShooTerKo
•--->
•--->


Anmeldedatum: 21.03.2006
Beiträge: 221
Wohnort: Hamburg

BeitragVerfasst am: 09.01.2009 - 09:37    Titel: Antworten mit Zitat

Ja, das stimmt natürlich Wink
Ich habe vorher noch die Trennung mit " gemacht, um zu verhindern, dass ein Semikolon im Betreff das Ganze zum Kippen bringt. Allerdings sollte man dann noch sicherstellen, dass auch kein weiteres Anführungszeichen im Betreff erscheint, also praktisch die Aufsplittung auf
Code:
set firstPart to text items 1 thru -2 of theLine
      -- secondPart ist der Bereich hinter dem letzten "
      set secondPart to the last text item of theLine

setzen. Sonst bin ich voll deiner Meinung Very Happy

CU
ShooTerKo
_________________
"It is a mistake to think you can solve any major problems just with potatoes." - Douglas Adams
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
cj3000
•->
•->


Anmeldedatum: 07.01.2009
Beiträge: 2

BeitragVerfasst am: 09.01.2009 - 22:10    Titel: funktioniert tadellos Antworten mit Zitat

Vielen dank ihr Beiden.

funktioniert einwandfrei. Ich habe jetzt das erste Script genommen (reicht völlig) und noch mit einem "on open" befehl ergänzt. So das ich wenn ich eine neuen Kontoauszug von der Bank bekomme, diesen einfach auf das Droplet ziehe.
Weiß zwar nicht genau ob das so richtig ist aber vorerst funktionierts.
Danke noch mal für den Code.

Christoph



Hier der Code:
-- File öffnen

on open openedFile

-- Alle Lines einlesen
set fileContentLines to paragraphs of (read openedFile)

-- File schließen
--close access openedFile--

-- Neues File erzeugen oder öffnen
set newFile to open for access POSIX file "/Users/USER/Desktop/Output.csv" with write permission
-- Inhalt löschen
set eof newFile to 0

-- alle text items durchgehen
repeat with theLine in fileContentLines
try
-- Um evtl. Semikolons aus der Betreffzeile filtern
-- text item Trennung auf " setzen
set AppleScript's text item delimiters to "\""

set firstPart to text items 1 thru 2 of theLine
-- secondPart ist der Bereich hinter dem letzten "
set secondPart to the third text item of theLine

-- text item Trennung auf ";" setzen
set AppleScript's text item delimiters to ";"

-- einzelne text items als neue Liste holen (wichtig, um die einzelnen items setzen zu können)
set newSecondPart to text items of secondPart

-- wenn das 2. text item nicht leer ist, das 3. text item jedoch leer ist
if the second text item of secondPart is not "" and the third text item of secondPart is "" then
-- schiebe das 2. text item auf den 3. Platz
set the third item of newSecondPart to the second text item of secondPart
-- lösche das 2. item aus der Liste
set the second item of newSecondPart to ""
end if

-- die Liste newSecondPart als String (verwendet ; als Trennnung)
set secondPart to (newSecondPart as string) as string

set AppleScript's text item delimiters to "\""

-- firstPart und secondPart als String (verwendet wieder " als Trennnung)
write (firstPart & secondPart as string) & return to newFile starting at (get eof of newFile) + 1

-- text item Trennung auf "" (Standard) setzen
set AppleScript's text item delimiters to ""
on error
-- text item Trennung auf "" (Standard) setzen
set AppleScript's text item delimiters to ""
-- schreibe auf jeden Fall die Zeile (vermutlich die erste mit den Spaltennamen)
write theLine & return to newFile starting at (get eof of newFile) + 1
end try
end repeat

-- text item Trennung auf "" (Standard) setzen
set AppleScript's text item delimiters to ""

-- File schließen
close access newFile
end open
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-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