Ini-Datei - Sektion entfernen

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Ini-Datei - Sektion entfernen

Re: Ini-Datei - Sektion entfernen

Post by lujanw » 23 Feb 2015, 13:49

Danke habs nun so klappt soweit wie ich es getestet habe :D

Code: Select all

FileDelete, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegnerlisten.ini

InputFile  = %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegner.ini
OutputFile = %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegnerlisten.ini
{
Loop, Read, %InputFile%, %OutputFile% 
If SubStr(A_LoopReadLine, 1, 1) != "["
{
StringSplit, text, A_LoopReadLine, =

IniWrite, Offline, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegnerlisten.ini, Gegner, %text1%
;FileAppend, %A_LoopReadLine%`n
}
}

Re: Ini-Datei - Sektion entfernen

Post by strobo » 23 Feb 2015, 09:28

Probiers mit

Code: Select all

if ...
{
...
}
; und
loop ...
{
...
}

Re: Ini-Datei - Sektion entfernen

Post by lujanw » 21 Feb 2015, 09:40

Ich habe es nun so gemacht, was auch eigentlich meinen Wünschen entspricht (danke nochmal)
Jedoch wird aus der Gegner.ini nur der letzte Eintrag übernommen (in dem Fall Name=Fraktion). Es sollen aber logischerweise alle übernommen werden.

Hiermal der Inhalt der .ini und das Script.

Code: Select all

[Yakuza]
traviS_smitH=Yakuza
Jones_Moran=Yakuza
mR.TraubenzuckeR=Yakuza
JaN.JacksoN=Yakuza
Leo2201=Yakuza
harun_jones=Yakuza
mARcus.ALmeida=Yakuza
Jayson_MiLLER=Yakuza
[Aztecas]
DarK_BlizZarD77=Aztecas
LioN_Murray=Aztecas
AizeN_MuRRay=Aztecas

Es wird nur "Aizen_Murray" übernommen nicht der rest.

Code: Select all

FileDelete, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegnerlisten.ini

InputFile  = %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegner.ini
OutputFile = %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegnerlisten.ini
Loop, Read, %InputFile%, %OutputFile%
If SubStr(A_LoopReadLine, 1, 1) != "["
 StringSplit, text, A_LoopReadLine, =
IniWrite, Offline, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegnerlisten.ini, Gegner, %text1%
FileAppend, %A_LoopReadLine%`n

Re: Ini-Datei - Sektion entfernen

Post by wolf_II » 15 Feb 2015, 09:53

Warum postet Du nicht dort, wo Du mit Deinem Thema hingehörst?
IHMO, das Thema hat hier seinen richtigen Platz. Aber das ist nur eine zweite Meinung.

Re: Ini-Datei - Sektion entfernen

Post by Johnny R » 15 Feb 2015, 09:41

@lujanw, für Euch Zockerkids gibt es eine eigene Sektion, wo Ihr ungestört seid. Warum postet Du nicht dort, wo Du mit Deinem Thema hingehörst?

Re: Ini-Datei - Sektion entfernen

Post by wolf_II » 15 Feb 2015, 09:40

Dümlicher Fehler meinerseits :oops: das ! ist an der falschen Stelle:

Code: Select all

Wrong: If !SubStr(A_LoopReadLine, 1, 1) = "["
Right: If SubStr(A_LoopReadLine, 1, 1) != "["
Auch bedenke dass Du am besten die Output-Datei immer erst löschen solltest, sonst wird die mit der Zeit immer länger.

Code: Select all

InputFile  = %A_ScriptDir%\Input.ini
OutputFile = %A_ScriptDir%\Output.ini
FileDelete, %OutputFile%

Loop, Read, %InputFile%, %OutputFile%
    If SubStr(A_LoopReadLine, 1, 1) != "["
        FileAppend, %A_LoopReadLine%`n

Re: Ini-Datei - Sektion entfernen

Post by lujanw » 15 Feb 2015, 09:25

wolf_II wrote:Gib mal bitte ein Beispiel für Inputfile (zB. Input.ini) und den von Dir gewollten OutputFile (zB. Output.ini). Vielleicht sehe ich dann wo das Problem ist? Sind da Zeilen drin, die unkonventionell sind?
SubStr(A_LoopReadLine, 1, 1) gibt Dir das erste Zeichen aus der Zeichenkette A_LoopReadLine zurück.
Also in der Ausgangs-Datein steht z.B. das hier:

Code: Select all

[Cali Kartell]
booba_Lunatic=Cali Kartell
Aber in die Gegnerliste soll nur das "booba_lunatic=Cali Kartell" stehen nicht das [Cali Kartell]


Meinste das mit Beispiel? ^^
Wenn nicht hier die ganze funktion:
Spoiler

Re: Ini-Datei - Sektion entfernen

Post by wolf_II » 15 Feb 2015, 09:05

Gib mal bitte ein Beispiel für Inputfile (zB. Input.ini) und den von Dir gewollten OutputFile (zB. Output.ini). Vielleicht sehe ich dann wo das Problem ist? Sind da Zeilen drin, die unkonventionell sind?
SubStr(A_LoopReadLine, 1, 1) gibt Dir das erste Zeichen aus der Zeichenkette A_LoopReadLine zurück.

Re: Ini-Datei - Sektion entfernen

Post by lujanw » 15 Feb 2015, 08:55

wolf_II wrote:

Code: Select all

InputFile  = %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegner.ini
OutputFile = %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegnerlisten.ini

Loop, Read, %InputFile%, %OutputFile%
    If !SubStr(A_LoopReadLine, 1, 1) = "["
        FileAppend, %A_LoopReadLine%
Kein IniWrite benutzen! Johnny R hat's schon gesagt.
Danke für deine Hilfe, jedoch wird nichts in die Gegnerlisten.ini eingetragen.
Also das beim Loop Read das richtig erkannt wird, also die Datein, klappt.
Bei der weiteren Funktion mit dem SubString habe ich mich noch nie mit befasst, also habe keine Ahnung was dort nicht funktioniert.
Hilfe bei google habe ich nicht gefunden...

gruß

Re: Ini-Datei - Sektion entfernen

Post by wolf_II » 15 Feb 2015, 08:06

Code: Select all

InputFile  = %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegner.ini
OutputFile = %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegnerlisten.ini

Loop, Read, %InputFile%, %OutputFile%
    If !SubStr(A_LoopReadLine, 1, 1) = "["
        FileAppend, %A_LoopReadLine%
Kein IniWrite benutzen! Johnny R hat's schon gesagt.

Re: Ini-Datei - Sektion entfernen

Post by lujanw » 15 Feb 2015, 07:41

Johnny R wrote:
in der .ini Datei wird immer die Sektion mit rein geschrieben...
Das ist ja der Sinn einer ini-Datei, andernfalls es keine ini-Datei, sondern eine sonstige Textdatei wäre.
...was aber nicht der Fall sein soll
Dann darfst Du nicht in eine ini-Datei schreiben, sondern mit FileAppend in eine einfache Textdatei.
Das ist mir alles bewusst.
Ich will aber auch bewusst für diese eine Funktion den kompletten Inhalt in die "Gegnerlisten.ini" kopierten BIS auf die Sektionen, aber auch nur in diesem fall.
Sonst benötige ich diese ja auch.

gruß

Re: Ini-Datei - Sektion entfernen

Post by Johnny R » 15 Feb 2015, 02:03

in der .ini Datei wird immer die Sektion mit rein geschrieben...
Das ist ja der Sinn einer ini-Datei, andernfalls es keine ini-Datei, sondern eine sonstige Textdatei wäre.
...was aber nicht der Fall sein soll
Dann darfst Du nicht in eine ini-Datei schreiben, sondern mit FileAppend in eine einfache Textdatei.

Ini-Datei - Sektion entfernen

Post by lujanw » 14 Feb 2015, 10:28

Hallo guys,
ich habe vor Sachen von einer .ini in eine andere zu kopieren aber die Sektions-"Blöcke" sollen nicht mitgenommen werden.
Bin leider ratlos wie ich diese entfernen soll.

Das was ich bisher habe funktioniert nicht

Code: Select all

Loop, Read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegner.ini
{
StringSplit, text, A_LoopReadLine, =
if(text != [Aztecas] AND text != [Yakuza] AND text != [Cali Kartell])
IniWrite, Offline, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Cekretus Keybinder\Gegnerlisten\Gegnerlisten.ini, Gegner, %text1%
}
in der .ini Datei wird immer die Sektion mit rein geschrieben, was aber nicht der Fall sein soll

z.B.

Code: Select all

[Gegner]
[Cali Kartell]=Offline
Es soll aber wie gesagt alles andere dort rein aber nicht die Sektionen.
Hoffentlich hilft jemand

Gruß

Top